package usecase import ( "context" "time" "cmroubao/backend-api/internal/domain" ) type AutoProcurementReference struct { Asset domain.Asset ProductThumbRef string SourceImageSHA256 string SourceImageStorageKey string } type ProcurementRepository interface { GetProcurementSourceItem( context.Context, string, string, ) (domain.ProcurementSourceItem, error) GetReadyFreightItemImage( context.Context, string, string, ) (domain.FreightItemImage, error) CreateProcurementRequest( context.Context, domain.ProcurementRequest, *AutoProcurementReference, ) (domain.ProcurementRequest, bool, bool, error) ListProcurementRequestsForOrder( context.Context, string, string, ) ([]domain.ProcurementRequest, error) GetProcurementRequest( context.Context, string, string, ) (domain.ProcurementRequest, error) BindProcurementReference( context.Context, string, string, string, time.Time, ) (domain.ProcurementRequest, *string, error) CreateProcurementTask( context.Context, domain.ProcurementRequest, domain.PurchaseTask, domain.TaskEvent, domain.PurchaseTaskSource, string, string, ) (domain.PurchaseTask, bool, error) }