s1_title = 'title'
s2_junction = 'junction'
s3_reservoir = 'reservoir'
s4_tank = 'tank'
s5_pipe = 'pipe'
s6_pump = 'pump'
s7_valve = 'valve'
s8_tag = 'tag'
s9_demand = 'demand'
s10_status = 'status'
s11_pattern = 'pattern'
s12_curve = 'curve'
s13_control = 'control'
s14_rule = 'rule'
s15_energy = 'energy'
s15_pump_energy = 'pump_energy'
s16_emitter = 'emitter'
s17_quality = 'quality'
s18_source = 'source'
s19_reaction = 'reaction'
s19_pipe_reaction = 'pipe_reaction'
s19_tank_reaction = 'tank_reaction'
s20_mixing = 'mixing'
s21_time = 'time'
s22_report = 'report'
s23_option = 'option'
s23_option_v3 = 'option_v3'
s24_coordinate = 'coordinate'
s25_vertex = 'vertex'
s26_label = 'label'
s27_backdrop = 'backdrop'
s28_end = 'end'
s29_scada_device = 'scada_device'
s30_scada_device_data = 'scada_device_data'
s31_scada_element = 'scada_element'
s32_region = 'region'
s33_dma = 'district_metering_area'
s34_sa = 'service_area'
s35_vd = 'virtual_district'

TITLE = 'TITLE'
JUNCTIONS = 'JUNCTIONS'
RESERVOIRS = 'RESERVOIRS'
TANKS = 'TANKS'
PIPES = 'PIPES'
PUMPS = 'PUMPS'
VALVES = 'VALVES'
TAGS = 'TAGS'
DEMANDS = 'DEMANDS'
STATUS = 'STATUS'
PATTERNS = 'PATTERNS'
CURVES = 'CURVES'
CONTROLS = 'CONTROLS'
RULES = 'RULES'
ENERGY = 'ENERGY'
EMITTERS = 'EMITTERS'
QUALITY = 'QUALITY'
SOURCES = 'SOURCES'
REACTIONS = 'REACTIONS'
MIXING = 'MIXING'
TIMES = 'TIMES'
REPORT = 'REPORT'
OPTIONS = 'OPTIONS'
COORDINATES = 'COORDINATES'
VERTICES = 'VERTICES'
REGION='REGION'
BOUND='BOUND'
REGION_NODES='DATA_NODE_OF_REGION'
LABELS = 'LABELS'
BACKDROP = 'BACKDROP'
END = 'END'

section_name = [TITLE,    JUNCTIONS, RESERVOIRS, TANKS,       PIPES,
                PUMPS,    VALVES,    TAGS,       DEMANDS,     STATUS,
                PATTERNS, CURVES,    CONTROLS,   RULES,       ENERGY,
                EMITTERS, QUALITY,   SOURCES,    REACTIONS,   MIXING,
                TIMES,    REPORT,    OPTIONS,    COORDINATES, VERTICES,
                REGION, BOUND, REGION_NODES, LABELS,   BACKDROP,  END]

# DingZQ, 2025-02-04
# 我们在从服务器调用run_project的时候
# 会将 database的project内容dump成 epanet v2 的inp文件，然后调用 runepanet.exe 去计算结果
# 其中上面的 SECTION ： REGION, BOUND, REGION_NODES 在 epanet v2 中没有，是我们自己定制的
# 所以需要将这些 section 从 section_name 中移除
section_names_for_epanetv2 = [TITLE,    JUNCTIONS, RESERVOIRS, TANKS,       PIPES,
                              PUMPS,    VALVES,    TAGS,       DEMANDS,     STATUS,
                              PATTERNS, CURVES,    CONTROLS,   RULES,       ENERGY,
                              EMITTERS, QUALITY,   SOURCES,    REACTIONS,   MIXING,
                              TIMES,    REPORT,    OPTIONS,    COORDINATES, VERTICES,
                              LABELS,   BACKDROP,  END]