from enum import Enum
from typing import List
from q2_sdk.core.dynamic_imports import (
api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from q2_sdk.hq.table_row import TableRow
from q2_sdk.models.db_plan_shapes import TransactionType
from .db_object import DbObject
[docs]
class HourType(Enum):
LobbyHours = "LobbyHours"
CallTransfer = "CallTransfer"
AdapterTransaction = "AdapterTransaction"
GeneratedTransaction = "GeneratedTransaction"
NextProcessingDate = "NextProcessingDate"
SameDayAch = "SameDayAch"
[docs]
class HoursRow(TableRow):
HourID: int
BranchID: int
HourTypeID: int
OpenOrClosed: str
DayOfWeekOrDate: str
StartDateTime: str
EndTime: str
Description: str
RequestTypeID: int
TransactionTypeID: int
[docs]
class Hours(DbObject):
"""
Used to gather specific cutoff times for payments, or to get lobby hours for holidays.
"""
NAME = "Hours"
REPRESENTATION_ROW_CLASS = HoursRow
[docs]
async def get(
self, hour_type: HourType, transaction_type: TransactionType = None
) -> List[HoursRow]:
assert isinstance(hour_type, HourType), "Please supply a valid hour type"
parameters = [
ExecuteStoredProcedure.SqlParam(
ExecuteStoredProcedure.DataType.VarChar, "hour_type", hour_type.value
)
]
if transaction_type:
assert isinstance(transaction_type, TransactionType), (
"Please supply a valid transaction type"
)
parameters.append(
ExecuteStoredProcedure.SqlParam(
ExecuteStoredProcedure.DataType.VarChar,
"transaction_type",
transaction_type.value,
)
)
response = await self.call_hq(
"sdk_GetHours", ExecuteStoredProcedure.SqlParameters(parameters)
)
return response