Достижение: Добавлены скрипты и документация для релиза PDF Compressor.

- Добавлен release-body.md для подробных заметок о релизе на русском языке.
- Реализован release-gitea.ps1 для автоматизированного релиза Gitea с помощью PowerShell.
- Создан release-gitea.sh для автоматизированного релиза Gitea с помощью Bash.
- Добавлен release.sh для сборки и маркировки релизов с поддержкой нескольких платформ.
- Улучшен пользовательский интерфейс благодаря информативному логированию и обработке ошибок.
- Добавлена ​​поддержка переменных окружения и управления конфигурацией.
- Добавлена ​​функция создания архивов и загрузки ресурсов в Gitea.
This commit is contained in:
Dmitriy Fofanov
2025-11-05 09:33:12 +03:00
parent f328d67080
commit ec65cfd05a
43 changed files with 5792 additions and 2 deletions

View File

@@ -0,0 +1,9 @@
package repositories
import "compressor/internal/domain/entities"
// ConfigRepository интерфейс для работы с конфигурацией приложения
type AppConfigRepository interface {
Load(configPath string) (*entities.Config, error)
Save(configPath string, config *entities.Config) error
}

View File

@@ -0,0 +1,24 @@
package repositories
import (
"compressor/internal/domain/entities"
)
// PDFCompressor интерфейс для сжатия PDF файлов
type PDFCompressor interface {
Compress(inputPath, outputPath string, config *entities.CompressionConfig) (*entities.CompressionResult, error)
}
// FileRepository интерфейс для работы с файловой системой
type FileRepository interface {
GetFileInfo(path string) (*entities.PDFDocument, error)
FileExists(path string) bool
CreateDirectory(path string) error
ListPDFFiles(directory string) ([]string, error)
}
// ConfigRepository интерфейс для работы с конфигурацией
type ConfigRepository interface {
GetCompressionConfig(level int) (*entities.CompressionConfig, error)
ValidateConfig(config *entities.CompressionConfig) error
}

View File

@@ -0,0 +1,11 @@
package repositories
// Logger интерфейс для логирования
type Logger interface {
Debug(format string, args ...interface{})
Info(format string, args ...interface{})
Warning(format string, args ...interface{})
Error(format string, args ...interface{})
Success(format string, args ...interface{})
Close() error
}