package repository import ( "context" "haixun-backend/internal/model/copy_draft/domain/entity" ) type Repository interface { EnsureIndexes(ctx context.Context) error Create(ctx context.Context, draft *entity.CopyDraft) error CreateMany(ctx context.Context, drafts []*entity.CopyDraft) error Get(ctx context.Context, tenantID, ownerUID, personaID, draftID string) (*entity.CopyDraft, error) Update(ctx context.Context, tenantID, ownerUID, personaID, draftID string, patch map[string]interface{}) (*entity.CopyDraft, error) DeleteByMissionAndType(ctx context.Context, tenantID, ownerUID, personaID, missionID, draftType string) error DeleteByMission(ctx context.Context, tenantID, ownerUID, personaID, missionID string) error List(ctx context.Context, tenantID, ownerUID, personaID string, limit int) ([]entity.CopyDraft, error) ListByMission(ctx context.Context, tenantID, ownerUID, personaID, missionID string, limit int) ([]entity.CopyDraft, error) }