package translation import ( "context" "tercul/internal/domain" ) // TranslationQueries contains the query handlers for the translation aggregate. type TranslationQueries struct { repo domain.TranslationRepository } // NewTranslationQueries creates a new TranslationQueries handler. func NewTranslationQueries(repo domain.TranslationRepository) *TranslationQueries { return &TranslationQueries{repo: repo} } // Translation returns a translation by ID. func (q *TranslationQueries) Translation(ctx context.Context, id uint) (*domain.Translation, error) { return q.repo.GetByID(ctx, id) } // TranslationsByWorkID returns all translations for a work. func (q *TranslationQueries) TranslationsByWorkID(ctx context.Context, workID uint) ([]domain.Translation, error) { return q.repo.ListByWorkID(ctx, workID) } // TranslationsByEntity returns all translations for an entity. func (q *TranslationQueries) TranslationsByEntity(ctx context.Context, entityType string, entityID uint) ([]domain.Translation, error) { return q.repo.ListByEntity(ctx, entityType, entityID) } // TranslationsByTranslatorID returns all translations for a translator. func (q *TranslationQueries) TranslationsByTranslatorID(ctx context.Context, translatorID uint) ([]domain.Translation, error) { return q.repo.ListByTranslatorID(ctx, translatorID) } // TranslationsByStatus returns all translations for a status. func (q *TranslationQueries) TranslationsByStatus(ctx context.Context, status domain.TranslationStatus) ([]domain.Translation, error) { return q.repo.ListByStatus(ctx, status) } // Translations returns all translations. func (q *TranslationQueries) Translations(ctx context.Context) ([]domain.Translation, error) { return q.repo.ListAll(ctx) }