Implement tasks 1-6: project setup, config, database, webhook, commands

This commit is contained in:
Loki 2025-12-19 12:18:59 +01:00
parent 0a7b382cdb
commit 5af08efdad
22 changed files with 2018 additions and 19 deletions

View file

@ -1,6 +1,7 @@
# Implementation Plan
- [-] 1. Настройка проекта и Git
- [x] 1. Настройка проекта и Git
- [x] 1.1 Создать структуру Gradle проекта
@ -10,40 +11,59 @@
- Настроить Java 21 и shadowJar для сборки
- _Requirements: 7.1_
- [ ] 1.2 Настроить Git и .gitignore
- [x] 1.2 Настроить Git и .gitignore
- Создать .gitignore для Java/Gradle проекта
- Инициализировать git репозиторий
- Добавить remote https://git.lokili.xyz/loki/lorep.git
- Сделать initial commit и push
- _Requirements: N/A_
- [ ] 1.3 Создать plugin.yml и основной класс
- [x] 1.3 Создать plugin.yml и основной класс
- Создать plugin.yml с командами и правами
- Создать LorepPlugin.java с onEnable/onDisable
- _Requirements: 6.1, 6.2, 6.3_
- [ ] 2. Реализация конфигурации
- [ ] 2.1 Создать ConfigManager и config.yml
- [x] 2. Реализация конфигурации
- [x] 2.1 Создать ConfigManager и config.yml
- Создать default config.yml с настройками БД и webhook
- Реализовать ConfigManager для чтения конфигурации
- _Requirements: 7.1, 7.2, 7.3, 7.4_
- [ ] 2.2 Написать property test для парсинга конфигурации
- [x] 2.2 Написать property test для парсинга конфигурации
- **Property 9: Configuration Parsing**
- **Validates: Requirements 7.1, 7.3, 7.4**
- [ ] 3. Реализация базы данных
- [ ] 3.1 Создать модель Report и интерфейс DatabaseManager
- [x] 3. Реализация базы данных
- [x] 3.1 Создать модель Report и интерфейс DatabaseManager
- Создать Report record
- Создать интерфейс DatabaseManager
- _Requirements: 2.1_
- [ ] 3.2 Реализовать SQLiteDatabaseManager
- [x] 3.2 Реализовать SQLiteDatabaseManager
- Реализовать все методы интерфейса для SQLite
- Создать таблицу и индексы
- _Requirements: 2.1, 2.2, 2.3_
- [ ] 3.3 Реализовать PostgreSQLDatabaseManager
- [x] 3.3 Реализовать PostgreSQLDatabaseManager
- Реализовать все методы с HikariCP connection pool
- Создать таблицу и индексы для PostgreSQL
- _Requirements: 2.1, 2.2, 2.3_
- [ ] 3.4 Написать property tests для DatabaseManager
- [x] 3.4 Написать property tests для DatabaseManager
- **Property 1: Report Creation Integrity**
- **Property 2: Duplicate Report Prevention**
- **Property 3: Report Persistence Round-Trip**
@ -51,31 +71,47 @@
- **Property 7: Report Count Accuracy**
- **Validates: Requirements 1.1, 1.2, 2.1, 2.2, 2.3, 5.1**
- [ ] 4. Checkpoint - Проверка тестов БД
- [x] 4. Checkpoint - Проверка тестов БД
- Ensure all tests pass, ask the user if questions arise.
- [ ] 5. Реализация Discord Webhook
- [ ] 5.1 Создать DiscordWebhook сервис
- [x] 5. Реализация Discord Webhook
- [x] 5.1 Создать DiscordWebhook сервис
- Реализовать отправку embed сообщений через OkHttp
- Обработать ошибки и отсутствие URL
- _Requirements: 3.1, 3.2, 3.3_
- [ ] 5.2 Написать property test для webhook payload
- [x] 5.2 Написать property test для webhook payload
- **Property 5: Webhook Payload Completeness**
- **Validates: Requirements 3.1**
- [ ] 6. Реализация команд
- [ ] 6.1 Создать ReportCommand (/report [ник] [причина])
- [x] 6. Реализация команд
- [x] 6.1 Создать ReportCommand (/report [ник] [причина])
- Валидация аргументов и прав
- Проверка на самого себя и существование игрока
- Проверка на дубликат репорта
- Сохранение в БД и отправка в webhook
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 6.1_
- [ ] 6.2 Создать ReportStatsCommand (/report stats [ник])
- [x] 6.2 Создать ReportStatsCommand (/report stats [ник])
- Показ количества репортов
- Показ последнего онлайна
- Список последних репортов
- _Requirements: 5.1, 5.2, 5.3, 5.4, 6.3_
- [ ] 6.3 Написать property test для проверки прав
- [x] 6.3 Написать property test для проверки прав
- **Property 8: Permission Enforcement**
- **Validates: Requirements 6.1, 6.2, 6.3**