"""Data layer for dms delivery spec.""" from sqlalchemy import text from vectororder.connectors.mysql import dd_db_connector from vectororder.constants import YN_CHAR_TO_BOOL, sql from vectororder.models.schemas import DmsDeliverySpec, EncodingOrderType def get_dms_delivery_spec( dms_master_master_id: int, order_type: EncodingOrderType ) -> DmsDeliverySpec: """Get DMS delivery spec by master id and order type.""" with dd_db_connector.db_session() as session: result = ( session.execute( text(sql.DD_SELECT_DELIVERY_SPEC), { "dms_master_master_id": dms_master_master_id, "order_type": order_type.value, }, ) .mappings() .one() ) return DmsDeliverySpec( dms_delivery_spec_id=result["dms_delivery_spec_id"], dms_master_master_id=result["dms_master_master_id"], order_type=EncodingOrderType(result["order_type"]), delivery=result["delivery"], encoding=result["encoding"], metadata_update=YN_CHAR_TO_BOOL[result["metadata_update"]], )