from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable


class ComMedPrefc(UltmarcTable):
    """レイアウト区分121: COM_医療圏都道府県"""
    pref_code: str           # 都道府県コード
    rev_date: str            # 医療圏ﾒﾝﾃﾅﾝｽ年月日
    post_date: str           # 公示年月日
    psy_bednum_tg: str       # 精神_基準病床数 or 整備目標数
    psy_bednum_gen: str      # 精神_既存病床数（病床数）
    psy_bednum_date: str     # 精神_既存病床数（年月日）
    psy_eqbed_num: str       # 精神_過不足病床数(差引)
    tb_bednum_tg: str        # 結核_基準病床数 or 整備目標数
    tb_bednum_gen: str       # 結核_既存病床数（病床数）
    tb_bednum_date: str      # 結核_既存病床数（年月日）
    tb_eqbed_num: str        # 結核_過不足病床数(差引)
    inf_bednum_tg: str       # 感染症_基準病床数 or 整備目標数
    inf_bednum_gen: str      # 感染症_既存病床数（病床数）
    inf_bednum_date: str     # 感染症_既存病床数（年月日）
    inf_eqbed_num: str       # 感染症_過不足病床数(差引)
    maintflag: str           # 修正区分

    def __init__(self, record: list[str]):
        super().__init__(record)
        self.pref_code = record[1]
        self.maintflag = record[2]
        self.rev_date = record[5]
        self.post_date = record[6]
        self.psy_bednum_tg = record[7].strip()
        self.psy_bednum_gen = record[8].strip()
        self.psy_bednum_date = record[9]
        self.psy_eqbed_num = record[10]
        self.tb_bednum_tg = record[11].strip()
        self.tb_bednum_gen = record[12].strip()
        self.tb_bednum_date = record[13]
        self.tb_eqbed_num = record[14]
        self.inf_bednum_tg = record[15].strip()
        self.inf_bednum_gen = record[16].strip()
        self.inf_bednum_date = record[17]
        self.inf_eqbed_num = record[18]

        # decimal型のカラム値は、空文字で渡ってきた場合はNULLに変換する
        self.psy_bednum_tg = self.psy_bednum_tg if len(self.psy_bednum_tg) > 0 else None
        self.psy_bednum_gen = self.psy_bednum_gen if len(self.psy_bednum_gen) > 0 else None
        self.tb_bednum_tg = self.tb_bednum_tg if len(self.tb_bednum_tg) > 0 else None
        self.tb_bednum_gen = self.tb_bednum_gen if len(self.tb_bednum_gen) > 0 else None
        self.inf_bednum_tg = self.inf_bednum_tg if len(self.inf_bednum_tg) > 0 else None
        self.inf_bednum_gen = self.inf_bednum_gen if len(self.inf_bednum_gen) > 0 else None
