Базовая модель данных

Базовая модель данных#

1. house#

Назначение: объект птичника внутри tenant/site.

Таблица: poultry_house.

Ключевые поля:

  • id (PK)

  • tenant_id, site_id

  • code, name

  • capacity_birds

  • ventilation_profile

  • status (active|maintenance|archived)

  • timezone

  • created_at, updated_at

DTO: HouseDTO (backend-go/internal/domain/poultry/model_core.go).

2. batch#

Назначение: производственный цикл (бройлер/несушка) в конкретном птичнике.

Таблица: poultry_batch.

Ключевые поля:

  • id (PK)

  • tenant_id, site_id, house_id

  • batch_code

  • subtype (poultry.broiler|poultry.layer)

  • start_date, planned_close_date

  • bird_count_start

  • current_age_days

  • status (planned|active|closed|canceled)

  • created_at, updated_at

DTO: BatchDTO.

3. age_phase#

Назначение: возрастная фаза партии с нормативами климата.

Таблица: poultry_age_phase.

Ключевые поля:

  • id (PK)

  • subtype

  • phase_code, name

  • age_day_from, age_day_to

  • target_temp_c

  • target_humidity_min, target_humidity_max

  • target_light_hours

  • updated_at

DTO: AgePhaseDTO.

4. climate_profile#

Назначение: применяемый набор уставок микроклимата для house + age_phase.

Таблица: poultry_climate_profile.

Ключевые поля:

  • id (PK)

  • tenant_id, site_id, house_id

  • subtype, age_phase_id

  • temp_setpoint_c, temp_min_c, temp_max_c

  • humidity_setpoint_percent, humidity_min_percent, humidity_max_percent

  • co2_max_ppm, nh3_max_ppm

  • min_ventilation_percent

  • heating_enabled

  • version_id, state, change_note, rollback_of

  • updated_at

DTO: ClimateProfileDTO.

5. Связи#

  • batch.house_id -> house.id

  • climate_profile.house_id -> house.id

  • climate_profile.age_phase_id -> age_phase.id

  • batch.current_age_days используется для выбора активной age_phase.