from src.aws.aws_api_client import AWSAPIClient from src.error.exceptions import DBException from src.model.db.hdke_tbl import HdkeTblModel from src.repositories.base_repository import BaseRepository from src.repositories.hdke_tbl_repository import HdkeTblRepository from src.services.base_service import BaseService class BatchStatusService(BaseService): REPOSITORIES = { 'hdke_table_repository': HdkeTblRepository } hdke_table_repository: HdkeTblRepository __hdke_table_record: list[HdkeTblModel] = [] def __init__(self, repositories: dict[str, BaseRepository], clients: dict[str, AWSAPIClient]) -> None: super().__init__(repositories, clients) self.hdke_table_repository = repositories['hdke_table_repository'] # サービスインスタンス生成時に日付テーブルを取得する。取得できない場合は例外とする try: self.__hdke_table_record = self.hdke_table_repository.fetch_all() except Exception as e: raise DBException(e) @property def hdke_table_record(self) -> HdkeTblModel: # 日付マスタのレコードがあることを確認 self.__assert_record_exists() # 日付テーブルのレコードは必ず1件 return self.__hdke_table_record[0] def is_batch_processing(self): # 日付マスタのレコードがあることを確認 self.__assert_record_exists() return self.hdke_table_record.bch_actf == '1' # TODO: 定数化する def __assert_record_exists(self): # 日付マスタのレコードがない場合は例外とする if len(self.__hdke_table_record) == 0: raise DBException('日付テーブルのレコードが存在しません')