// Package domain содержит бизнес-сущности и интерфейсы (порты) приложения. // Этот слой не зависит ни от чего внешнего — только чистые структуры и контракты. package domain import "time" // AudioBookInfo — агрегат, содержащий метаданные аудиокниги. type AudioBookInfo struct { FolderPath string // путь к папке с аудиокнигой Title string // название книги Author string // автор Album string // альбом (часто совпадает с названием) Genre string // жанр Year int // год издания Comment string // описание / комментарий Duration time.Duration // длительность первого трека Format string // формат файла (mp3, m4b, ogg …) SourceFile string // файл, из которого извлечены метаданные CoverFound bool // обложка найдена FilesCount int // количество аудиофайлов в папке } // ScanResult оборачивает результат сканирования одной папки. type ScanResult struct { Info *AudioBookInfo Err error }