You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
4.6 KiB
Python

from sqlalchemy import Column, Float, Integer, String, ForeignKey, Text
from sqlalchemy.orm import relationship
from src.database.core import Base
from src.models import DefaultMixin, IdentityMixin
class Equipment(Base, DefaultMixin, IdentityMixin):
__tablename__ = "lcc_ms_equipment_data"
assetnum = Column(String, nullable=False)
acquisition_year = Column(Integer, nullable=False)
acquisition_cost = Column(Float, nullable=False)
capital_cost_record_time = Column(Integer, nullable=False)
design_life = Column(Integer, nullable=False)
forecasting_start_year = Column(Integer, nullable=False)
forecasting_target_year = Column(Integer, nullable=False)
manhours_rate = Column(Float, nullable=False)
harga_saat_ini = Column(Float, nullable=True)
minimum_eac_seq = Column(Integer, nullable=False)
minimum_eac_year = Column(Integer, nullable=False)
minimum_eac = Column(Float, nullable=False)
minimum_npv = Column(Float, nullable=False)
minimum_pmt = Column(Float, nullable=False)
minimum_pmt_aq_cost = Column(Float, nullable=False)
minimum_is_actual = Column(Integer, nullable=False)
efdh_equivalent_forced_derated_hours = Column(Float, nullable=False)
foh_forced_outage_hours = Column(Float, nullable=False)
category_no = Column(String, nullable=True)
proportion = Column(Float, nullable=True)
equipment_master = relationship(
"EquipmentMaster",
# backref="equipment",
lazy="raise",
primaryjoin="and_(Equipment.assetnum == foreign(EquipmentMaster.assetnum))",
viewonly=True,
uselist=False,
)
class EquipmentTransactionRecords(Base, DefaultMixin, IdentityMixin):
__tablename__ = "lcc_equipment_tr_data"
equipment = relationship(
"Equipment",
backref="maintenance_records",
lazy="raise",
primaryjoin="and_(EquipmentTransactionRecords.assetnum == foreign(Equipment.assetnum))",
viewonly=True,
)
# master_equipment = relationship(
# "MasterEquipment",
# lazy="raise",
# primaryjoin="and_(ScopeEquipment.assetnum == foreign(MasterEquipment.assetnum))",
# uselist=False # Add this if it's a one-to-one relationship
# )
assetnum = Column(String, nullable=False)
tahun = Column(Integer, nullable=False)
seq = Column(Integer, nullable=False)
is_actual = Column(Integer, nullable=False)
raw_cm_interval = Column(Float, nullable=False)
raw_cm_material_cost = Column(Float, nullable=False)
raw_cm_labor_time = Column(Float, nullable=False)
raw_cm_labor_human = Column(Float, nullable=False)
raw_pm_interval = Column(Float, nullable=False)
raw_pm_material_cost = Column(Float, nullable=False)
raw_pm_labor_time = Column(Float, nullable=False)
raw_pm_labor_human = Column(Float, nullable=False)
raw_predictive_interval = Column(Float, nullable=False)
raw_predictive_material_cost = Column(Float, nullable=False)
raw_predictive_labor_time = Column(Float, nullable=False)
raw_predictive_labor_human = Column(Float, nullable=False)
raw_oh_interval = Column(Float, nullable=False)
raw_oh_material_cost = Column(Float, nullable=False)
raw_oh_labor_time = Column(Float, nullable=False)
raw_oh_labor_human = Column(Float, nullable=False)
raw_project_task_material_cost = Column(Float, nullable=False)
raw_loss_output_MW = Column(Float, nullable=False)
raw_loss_output_price = Column(Float, nullable=False)
raw_operational_cost = Column(Float, nullable=False)
raw_maintenance_cost = Column(Float, nullable=False)
rc_cm_material_cost = Column(Float, nullable=False)
rc_cm_labor_cost = Column(Float, nullable=False)
rc_pm_material_cost = Column(Float, nullable=False)
rc_pm_labor_cost = Column(Float, nullable=False)
rc_predictive_labor_cost = Column(Float, nullable=False)
rc_oh_material_cost = Column(Float, nullable=False)
rc_oh_labor_cost = Column(Float, nullable=False)
rc_project_material_cost = Column(Float, nullable=False)
rc_lost_cost = Column(Float, nullable=False)
rc_operation_cost = Column(Float, nullable=False)
rc_maintenance_cost = Column(Float, nullable=False)
rc_total_cost = Column(Float, nullable=False)
eac_npv = Column(Float, nullable=False)
eac_annual_mnt_cost = Column(Float, nullable=False)
eac_annual_acq_cost = Column(Float, nullable=False)
eac_disposal_cost = Column(Float, nullable=False)
eac_eac = Column(Float, nullable=False)
efdh_equivalent_forced_derated_hours = Column(Float, nullable=False)
foh_forced_outage_hours = Column(Float, nullable=False)