from datetime import date, datetime
from typing import Optional

from src.model.db.base_db_model import BaseDBModel


class BioSalesLotDBModel(BaseDBModel):
    slip_mgt_num: Optional[str]
    rec_whs_cd: Optional[str]
    rec_whs_sub_cd: Optional[str]
    rec_whs_org_cd: Optional[str]
    rec_comm_cd: Optional[str]
    rec_tran_kbn: Optional[str]
    rev_hsdnymd_srk: Optional[str]
    rec_urag_num: Optional[str]
    rec_nonyu_fcl_name: Optional[str]
    rec_nonyu_fcl_addr: Optional[str]
    rec_lot_num: Optional[str]
    rec_ymd: Optional[str]
    v_tran_cd: Optional[int]
    tran_kbn_name: Optional[str]
    v_whsorg_cd: Optional[int]
    whs_org_name: Optional[str]
    v_whs_cd: Optional[int]
    whs_name: Optional[str]
    nonyu_fcl_cd: Optional[str]
    product_name: Optional[str]
    whs_rep_comm_name: Optional[str]
    whs_rep_nonyu_fcl_name: Optional[str]
    whs_rep_nonyu_fcl_addr: Optional[str]
    mkr_cd: Optional[str]
    qty: Optional[int]
    bef_slip_mgt_num: Optional[str]
    iko_flg: Optional[str]
    ins_dt: Optional[datetime]
    ins_usr: Optional[str]
    inst_cd: Optional[str]
    inst_name_form: Optional[str]
    address: Optional[str]
    tel_num: Optional[str]
    data_kbn: Optional[str]
    data_kind: Optional[str]
    err_dtl_kind: Optional[str]
    expr_dt: Optional[date]


class BioSalesLotCountDBModel(BaseDBModel):
    count: Optional[int]
