Базовая модель данных#
1. house#
Назначение: объект птичника внутри tenant/site.
Таблица: poultry_house.
Ключевые поля:
id(PK)tenant_id,site_idcode,namecapacity_birdsventilation_profilestatus(active|maintenance|archived)timezonecreated_at,updated_at
DTO: HouseDTO (backend-go/internal/domain/poultry/model_core.go).
2. batch#
Назначение: производственный цикл (бройлер/несушка) в конкретном птичнике.
Таблица: poultry_batch.
Ключевые поля:
id(PK)tenant_id,site_id,house_idbatch_codesubtype(poultry.broiler|poultry.layer)start_date,planned_close_datebird_count_startcurrent_age_daysstatus(planned|active|closed|canceled)created_at,updated_at
DTO: BatchDTO.
3. age_phase#
Назначение: возрастная фаза партии с нормативами климата.
Таблица: poultry_age_phase.
Ключевые поля:
id(PK)subtypephase_code,nameage_day_from,age_day_totarget_temp_ctarget_humidity_min,target_humidity_maxtarget_light_hoursupdated_at
DTO: AgePhaseDTO.
4. climate_profile#
Назначение: применяемый набор уставок микроклимата для house + age_phase.
Таблица: poultry_climate_profile.
Ключевые поля:
id(PK)tenant_id,site_id,house_idsubtype,age_phase_idtemp_setpoint_c,temp_min_c,temp_max_chumidity_setpoint_percent,humidity_min_percent,humidity_max_percentco2_max_ppm,nh3_max_ppmmin_ventilation_percentheating_enabledversion_id,state,change_note,rollback_ofupdated_at
DTO: ClimateProfileDTO.
5. Связи#
batch.house_id -> house.idclimate_profile.house_id -> house.idclimate_profile.age_phase_id -> age_phase.idbatch.current_age_daysиспользуется для выбора активнойage_phase.