# Pf2e Data Screapper Программа обработки данных для игры Pathfinder 2e для создания БД для дальнейшего использования на сайте локализации Pf2e. ## Начало работы - Склонируйте репозиторий и войдите в папку `Pf2eDataScrapper`. - Создайте файл `.env` и добавьте в него содержимое из файла `.env.example`. Измените содержащиеся поля: - `DATA_DIR` - путь к папке для распаковки репозиториев обрабатываемых данных; - `OUTPUT_DIR` - путь к месту сохранения схем; - `DATABASE_CONNECTION` - строка подключения к БД (только PostreSQL). - Для создания структуры БД в командной строке запустите `dotnet ef database update`. - Проект готов к работе. ## Общая структура ### `SchemaBuilder` Классы обработки вводимых JSON-данных и создание схемы данных для использовании при формировании обработчиков данных. Использование: ```csharp SchemaNode schema = new(); // Создание схемы данных data = JObject.Parse(reader.ReadToEnd()); // Загрузка данных schema.AddValue(data); // Добавление данных ``` ### `Model` Набор классов модели ORM EntityFramework. Класс-контекст `Pf2eDbContext` разделён на 2 файла: - в `Pf2eDbContext.cs` находится набор таблиц и конфигурация БД, - в `Pf2eDbContextModel.cs` находится Fluent API описание связей в модели. Для удобства модель разбита на несколько папок-пространст имён: - `Base` - здесь описан класс `Entity`, который является корнем всех связей и описаний. В этой таблице находятся общие характеристики объектов: название, описание, тип, а так же ссылки на общие элементы: указание источников и трейтов - всё это в пространстве имён - `Common` содержит общее классы на которые могут ссылаться разные типа. - `Enum` содержит описание всех перечислений, использующихся в модели. - `Structure` содержит все основные типы, которые связаны 1-к-1 с `Entity` (для указания этого используется интерфейс `IEntity`). ### `Migrations` Миграции БД, генерируются в автомотическом режиме. ### `Importers` Классы загрузки и обработки данных. # TODO - Добавление экипировки - Добавление бестиария