from datetime import datetime, date from apollo_utils.service.schemas.fields.datetime import DateStringField from apollo_utils.service.schemas.mixins.replace import ReplaceByValuesMixin UNIX_EPOCH_START_DATE_STR = "1970-01-01" UNIX_EPOCH_START_DATE_TIME_STR = "1970-01-01T00:00:00" UNIX_EPOCH_START_DATE_AS_DATE = date.fromisoformat(UNIX_EPOCH_START_DATE_STR) UNIX_EPOCH_START_DATE_TIME_AS_DATETIME = datetime.fromisoformat(UNIX_EPOCH_START_DATE_TIME_STR) UNIX_EPOCH_VARIATION = ( UNIX_EPOCH_START_DATE_STR, UNIX_EPOCH_START_DATE_TIME_STR, UNIX_EPOCH_START_DATE_AS_DATE, UNIX_EPOCH_START_DATE_TIME_AS_DATETIME ) class UnixEpochCheckAndReplaceDateStringField(ReplaceByValuesMixin, DateStringField): def __init__(self, truncate_str: bool = True, max_len: int = 10, *args, **kwargs): super().__init__( *args, values=UNIX_EPOCH_VARIATION, replace=None, truncate_str=True, **kwargs )