refactor: add numeric value validation

main
MrWaradana 5 months ago
parent 62f0adc966
commit 7bd1e55a46

6
.gitignore vendored

@ -1,4 +1,8 @@
env/
.env
__pycache__/*
__pycache__/*
venv/
.venv
venv

@ -5,11 +5,12 @@ from uuid import UUID
from pydantic import Field
from src.models import DefaultBase, Pagination
MAX_PRICE = 1_000_000_000_000_000 # thousands of trillion
class EquipmentBase(DefaultBase):
assetnum: Optional[str] = Field(None, nullable=True)
acquisition_year: Optional[int] = Field(None, nullable=True)
acquisition_cost: Optional[float] = Field(None, nullable=True)
acquisition_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
capital_cost_record_time: Optional[int] = Field(None, nullable=True)
design_life: Optional[int] = Field(None, nullable=True)
forecasting_start_year: Optional[int] = Field(None, nullable=True)
@ -33,39 +34,39 @@ class MasterBase(DefaultBase):
seq: Optional[int] = Field(None, nullable=True)
is_actual: Optional[float] = Field(None, nullable=True)
raw_cm_interval: Optional[float] = Field(None, nullable=True)
raw_cm_material_cost: Optional[float] = Field(None, nullable=True)
raw_cm_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
raw_cm_labor_time: Optional[float] = Field(None, nullable=True)
raw_cm_labor_human: Optional[float] = Field(None, nullable=True)
raw_pm_interval: Optional[float] = Field(None, nullable=True)
raw_pm_material_cost: Optional[float] = Field(None, nullable=True)
raw_pm_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
raw_pm_labor_time: Optional[float] = Field(None, nullable=True)
raw_pm_labor_human: Optional[float] = Field(None, nullable=True)
raw_predictive_labor_time: Optional[float] = Field(None, nullable=True)
raw_predictive_labor_human: Optional[float] = Field(None, nullable=True)
raw_oh_material_cost: Optional[float] = Field(None, nullable=True)
raw_oh_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
raw_oh_labor_time: Optional[float] = Field(None, nullable=True)
raw_oh_labor_human: Optional[float] = Field(None, nullable=True)
raw_project_task_material_cost: Optional[float] = Field(None, nullable=True)
raw_project_task_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
raw_loss_output_MW: Optional[float] = Field(None, nullable=True)
raw_loss_output_price: Optional[float] = Field(None, nullable=True)
raw_operational_cost: Optional[float] = Field(None, nullable=True)
raw_maintenance_cost: Optional[float] = Field(None, nullable=True)
rc_cm_material_cost: Optional[float] = Field(None, nullable=True)
rc_cm_labor_cost: Optional[float] = Field(None, nullable=True)
rc_pm_material_cost: Optional[float] = Field(None, nullable=True)
rc_pm_labor_cost: Optional[float] = Field(None, nullable=True)
rc_predictive_labor_cost: Optional[float] = Field(None, nullable=True)
rc_oh_material_cost: Optional[float] = Field(None, nullable=True)
rc_oh_labor_cost: Optional[float] = Field(None, nullable=True)
rc_project_material_cost: Optional[float] = Field(None, nullable=True)
rc_lost_cost: Optional[float] = Field(None, nullable=True)
rc_operation_cost: Optional[float] = Field(None, nullable=True)
rc_maintenance_cost: Optional[float] = Field(None, nullable=True)
rc_total_cost: Optional[float] = Field(None, nullable=True)
eac_npv: Optional[float] = Field(None, nullable=True)
eac_annual_mnt_cost: Optional[float] = Field(None, nullable=True)
eac_annual_acq_cost: Optional[float] = Field(None, nullable=True)
eac_eac: Optional[float] = Field(None, nullable=True)
raw_loss_output_price: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
raw_operational_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
raw_maintenance_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_cm_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_cm_labor_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_pm_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_pm_labor_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_predictive_labor_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_oh_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_oh_labor_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_project_material_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_lost_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_operation_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_maintenance_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
rc_total_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
eac_npv: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
eac_annual_mnt_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
eac_annual_acq_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
eac_eac: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
class EquipmentCreate(EquipmentBase):
@ -80,7 +81,7 @@ class EquipmentRead(DefaultBase):
equipment_master_record: EquipmentMasterBase
equipment_data: EquipmentBase
chart_data: List[MasterBase]
min_eac_value: Optional[float] = Field(None, nullable=True)
min_eac_value: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
min_seq: Optional[float] = Field(None, nullable=True)
last_actual_year: Optional[int] = Field(None, nullable=True)
@ -91,13 +92,13 @@ class EquipmentTop10EconomicLife(EquipmentBase):
forecasting_target_year: Optional[int] = Field(None, nullable=True)
minimum_eac_seq: Optional[int] = Field(None, nullable=True)
minimum_eac_year: Optional[int] = Field(None, nullable=True)
minimum_eac: Optional[float] = Field(None, nullable=True)
minimum_npv: Optional[float] = Field(None, nullable=True)
minimum_pmt: Optional[float] = Field(None, nullable=True)
minimum_pmt_aq_cost: Optional[float] = Field(None, nullable=True)
minimum_eac: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_npv: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_pmt: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_pmt_aq_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_is_actual: Optional[int] = Field(None, nullable=True)
# min_eac_info: Optional[str] = Field(None, nullable=True)
harga_saat_ini: Optional[float] = Field(None, nullable=True)
harga_saat_ini: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
economic_life: Optional[int] = Field(None, nullable=True)
@ -107,14 +108,13 @@ class EquipmentDataMaster(EquipmentBase):
forecasting_target_year: Optional[int] = Field(None, nullable=True)
minimum_eac_seq: Optional[int] = Field(None, nullable=True)
minimum_eac_year: Optional[int] = Field(None, nullable=True)
minimum_eac: Optional[float] = Field(None, nullable=True)
minimum_npv: Optional[float] = Field(None, nullable=True)
minimum_pmt: Optional[float] = Field(None, nullable=True)
minimum_pmt_aq_cost: Optional[float] = Field(None, nullable=True)
minimum_eac: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_npv: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_pmt: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_pmt_aq_cost: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
minimum_is_actual: Optional[int] = Field(None, nullable=True)
# min_eac_info: Optional[str] = Field(None, nullable=True)
harga_saat_ini: Optional[float] = Field(None, nullable=True)
harga_saat_ini: Optional[float] = Field(None, nullable=True, le=MAX_PRICE)
# class EquipmentTop10EconomicLife(DefaultBase):
# equipment: EquipmentDataMaster

@ -14,7 +14,9 @@ class MasterdataBase(DefaultBase):
name: Optional[str] = Field(None, nullable=True)
description: Optional[str] = Field(None, nullable=True)
unit_of_measurement: Optional[str] = Field(None, nullable=True)
value_num: Optional[float] = Field(None, nullable=True)
value_num: Optional[float] = Field(
None, nullable=True, ge=0, le=1_000_000_000_000_000 # 1 quadrillion
)
value_str: Optional[str] = Field(None, nullable=True)
created_at: Optional[datetime] = Field(None, nullable=True)
updated_at: Optional[datetime] = Field(None, nullable=True)
@ -26,7 +28,9 @@ class MasterDataCreate(MasterdataBase):
name: str = Field(..., nullable=True)
description: str = Field(..., nullable=True)
unit_of_measurement: str = Field(..., nullable=True)
value_num: float = Field(..., nullable=True)
value_num: float = Field(
..., nullable=True, ge=0, le=1_000_000_000_000_000 # 1 quadrillion
)
value_str: str = Field(..., nullable=True)

@ -7,35 +7,37 @@ from src.models import DefaultBase, Pagination
from src.auth.service import CurrentUser
MAX_NUMERIC_VALUE = 1_000_000_000_000_000 # thousands of trillion
class PlantMasterdataBase(DefaultBase):
discount_rate: Optional[float] = Field(None, nullable=True)
total_project_cost: Optional[float] = Field(None, nullable=True)
umur_teknis: Optional[float] = Field(None, nullable=True)
interest_rate: Optional[float] = Field(None, nullable=True)
loan_portion: Optional[float] = Field(None, nullable=True)
equity_portion: Optional[float] = Field(None, nullable=True)
loan: Optional[float] = Field(None, nullable=True)
loan_tenor: Optional[float] = Field(None, nullable=True)
principal_interest_payment: Optional[float] = Field(None, nullable=True)
corporate_tax_rate: Optional[float] = Field(None, nullable=True)
wacc_on_project: Optional[float] = Field(None, nullable=True)
wacc_on_equity: Optional[float] = Field(None, nullable=True)
equity: Optional[float] = Field(None, nullable=True)
daya_mampu_netto: Optional[float] = Field(None, nullable=True)
auxiliary: Optional[float] = Field(None, nullable=True)
susut_trafo: Optional[float] = Field(None, nullable=True)
sfc: Optional[float] = Field(None, nullable=True)
electricity_price_a: Optional[float] = Field(None, nullable=True)
electricity_price_b: Optional[float] = Field(None, nullable=True)
electricity_price_c: Optional[float] = Field(None, nullable=True)
electricity_price_d: Optional[float] = Field(None, nullable=True)
harga_bahan_bakar: Optional[float] = Field(None, nullable=True)
calc_on_project_irr: Optional[float] = Field(None, nullable=True)
calc_on_project_npv: Optional[float] = Field(None, nullable=True)
calc_on_equity_irr: Optional[float] = Field(None, nullable=True)
calc_on_equity_npv: Optional[float] = Field(None, nullable=True)
calc_roa_all: Optional[float] = Field(None, nullable=True)
calc_roa_current: Optional[float] = Field(None, nullable=True)
discount_rate: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
total_project_cost: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
umur_teknis: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
interest_rate: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
loan_portion: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
equity_portion: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
loan: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
loan_tenor: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
principal_interest_payment: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
corporate_tax_rate: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
wacc_on_project: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
wacc_on_equity: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
equity: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
daya_mampu_netto: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
auxiliary: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
susut_trafo: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
sfc: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_a: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_b: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_c: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_d: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
harga_bahan_bakar: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_project_irr: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_project_npv: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_equity_irr: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_equity_npv: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_roa_all: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_roa_current: Optional[float] = Field(None, nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
created_at: Optional[datetime] = Field(None, nullable=True)
updated_at: Optional[datetime] = Field(None, nullable=True)
created_by: Optional[str] = Field(None, nullable=True)
@ -43,34 +45,34 @@ class PlantMasterdataBase(DefaultBase):
class PlantMasterDataCreate(PlantMasterdataBase):
discount_rate: float = Field(..., nullable=True)
total_project_cost: float = Field(..., nullable=True)
umur_teknis: float = Field(..., nullable=True)
interest_rate: float = Field(..., nullable=True)
loan_portion: float = Field(..., nullable=True)
equity_portion: float = Field(..., nullable=True)
loan: float = Field(..., nullable=True)
loan_tenor: float = Field(..., nullable=True)
principal_interest_payment: float = Field(..., nullable=True)
corporate_tax_rate: float = Field(..., nullable=True)
wacc_on_project: float = Field(..., nullable=True)
wacc_on_equity: float = Field(..., nullable=True)
equity: float = Field(..., nullable=True)
daya_mampu_netto: float = Field(..., nullable=True)
auxiliary: float = Field(..., nullable=True)
susut_trafo: float = Field(..., nullable=True)
sfc: float = Field(..., nullable=True)
electricity_price_a: float = Field(..., nullable=True)
electricity_price_b: float = Field(..., nullable=True)
electricity_price_c: float = Field(..., nullable=True)
electricity_price_d: float = Field(..., nullable=True)
harga_bahan_bakar: float = Field(..., nullable=True)
calc_on_project_irr: float = Field(..., nullable=True)
calc_on_project_npv: float = Field(..., nullable=True)
calc_on_equity_irr: float = Field(..., nullable=True)
calc_on_equity_npv: float = Field(..., nullable=True)
calc_roa_all: float = Field(..., nullable=True)
calc_roa_current: float = Field(..., nullable=True)
discount_rate: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
total_project_cost: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
umur_teknis: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
interest_rate: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
loan_portion: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
equity_portion: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
loan: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
loan_tenor: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
principal_interest_payment: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
corporate_tax_rate: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
wacc_on_project: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
wacc_on_equity: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
equity: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
daya_mampu_netto: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
auxiliary: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
susut_trafo: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
sfc: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_a: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_b: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_c: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
electricity_price_d: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
harga_bahan_bakar: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_project_irr: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_project_npv: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_equity_irr: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_on_equity_npv: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_roa_all: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
calc_roa_current: float = Field(..., nullable=True, ge=0, le=MAX_NUMERIC_VALUE)
class PlantMasterDataUpdate(PlantMasterdataBase):

@ -7,58 +7,58 @@ from src.models import DefaultBase, Pagination
class PlantTransactionDataBase(DefaultBase):
tahun: Optional[int] = Field(None, nullable=True)
is_actual: Optional[int] = Field(None, nullable=True)
seq: Optional[int] = Field(None, nullable=True)
net_capacity_factor: Optional[float] = Field(None, nullable=True)
eaf: Optional[float] = Field(None, nullable=True)
production_bruto: Optional[float] = Field(None, nullable=True)
production_netto: Optional[float] = Field(None, nullable=True)
energy_sales: Optional[float] = Field(None, nullable=True)
fuel_consumption: Optional[float] = Field(None, nullable=True)
revenue_a: Optional[float] = Field(None, nullable=True)
revenue_b: Optional[float] = Field(None, nullable=True)
revenue_c: Optional[float] = Field(None, nullable=True)
revenue_d: Optional[float] = Field(None, nullable=True)
revenue_total: Optional[float] = Field(None, nullable=True)
revenue_pv: Optional[float] = Field(None, nullable=True)
revenue_annualized: Optional[float] = Field(None, nullable=True)
cost_a_replacement: Optional[float] = Field(None, nullable=True)
cost_a_pm: Optional[float] = Field(None, nullable=True)
cost_a_acquisition: Optional[float] = Field(None, nullable=True)
cost_a_pinjaman: Optional[float] = Field(None, nullable=True)
cost_a_depreciation: Optional[float] = Field(None, nullable=True)
cost_a_total: Optional[float] = Field(None, nullable=True)
cost_a_pv: Optional[float] = Field(None, nullable=True)
cost_a_annualized: Optional[float] = Field(None, nullable=True)
cost_c_fuel: Optional[float] = Field(None, nullable=True)
cost_c_pv: Optional[float] = Field(None, nullable=True)
cost_c_annualized: Optional[float] = Field(None, nullable=True)
cost_bd_om: Optional[float] = Field(None, nullable=True)
cost_bd_pm_nonmi: Optional[float] = Field(None, nullable=True)
cost_bd_bd: Optional[float] = Field(None, nullable=True)
cost_bd_total: Optional[float] = Field(None, nullable=True)
cost_bd_pv: Optional[float] = Field(None, nullable=True)
cost_bd_annualized: Optional[float] = Field(None, nullable=True)
total_expense: Optional[float] = Field(None, nullable=True)
total_cost_eac: Optional[float] = Field(None, nullable=True)
total_profit_loss: Optional[float] = Field(None, nullable=True)
total_residual_value: Optional[float] = Field(None, nullable=True)
calc_depreciation: Optional[float] = Field(None, nullable=True)
calc_interest_payment: Optional[float] = Field(None, nullable=True)
calc_principal_payment: Optional[float] = Field(None, nullable=True)
calc_dept_amount: Optional[float] = Field(None, nullable=True)
calc2_ebitda: Optional[float] = Field(None, nullable=True)
calc2_earning_before_tax: Optional[float] = Field(None, nullable=True)
calc2_tax: Optional[float] = Field(None, nullable=True)
calc2_earning_after_tax: Optional[float] = Field(None, nullable=True)
calc2_nopat: Optional[float] = Field(None, nullable=True)
calc3_interest_after_tax: Optional[float] = Field(None, nullable=True)
calc3_free_cash_flow_on_project: Optional[float] = Field(None, nullable=True)
calc3_discounted_fcf_on_project: Optional[float] = Field(None, nullable=True)
calc4_principal_repayment: Optional[float] = Field(None, nullable=True)
calc4_free_cash_flow_on_equity: Optional[float] = Field(None, nullable=True)
calc4_discounted_fcf_on_equity: Optional[float] = Field(None, nullable=True)
tahun: Optional[int] = Field(None, nullable=True, ge=1900, le=9999)
is_actual: Optional[int] = Field(None, nullable=True, ge=0, le=1)
seq: Optional[int] = Field(None, nullable=True, ge=0, le=9999)
net_capacity_factor: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
eaf: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
production_bruto: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
production_netto: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
energy_sales: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fuel_consumption: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
revenue_a: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
revenue_b: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
revenue_c: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
revenue_d: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
revenue_total: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
revenue_pv: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
revenue_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_replacement: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_pm: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_acquisition: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_pinjaman: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_depreciation: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_total: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_pv: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_a_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_c_fuel: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_c_pv: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_c_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_bd_om: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_bd_pm_nonmi: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_bd_bd: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_bd_total: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_bd_pv: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
cost_bd_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
total_expense: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
total_cost_eac: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
total_profit_loss: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
total_residual_value: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc_depreciation: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc_interest_payment: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc_principal_payment: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc_dept_amount: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc2_ebitda: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc2_earning_before_tax: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc2_tax: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc2_earning_after_tax: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc2_nopat: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc3_interest_after_tax: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc3_free_cash_flow_on_project: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc3_discounted_fcf_on_project: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc4_principal_repayment: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc4_free_cash_flow_on_equity: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
calc4_discounted_fcf_on_equity: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
created_at: Optional[datetime] = Field(None, nullable=True)
updated_at: Optional[datetime] = Field(None, nullable=True)
created_by: Optional[str] = Field(None, nullable=True)
@ -66,51 +66,51 @@ class PlantTransactionDataBase(DefaultBase):
class PlantTransactionChart(DefaultBase):
tahun: Optional[int] = Field(None, nullable=True)
is_actual: Optional[int] = Field(None, nullable=True)
seq: Optional[int] = Field(None, nullable=True)
chart_total_revenue: Optional[float] = Field(None, nullable=True)
chart_revenue_a: Optional[float] = Field(None, nullable=True)
chart_revenue_b: Optional[float] = Field(None, nullable=True)
chart_revenue_c: Optional[float] = Field(None, nullable=True)
chart_revenue_d: Optional[float] = Field(None, nullable=True)
chart_revenue_annualized: Optional[float] = Field(None, nullable=True)
chart_fuel_cost_component_c: Optional[float] = Field(None, nullable=True)
chart_fuel_cost: Optional[float] = Field(None, nullable=True)
chart_fuel_cost_annualized: Optional[float] = Field(None, nullable=True)
chart_oem_component_bd: Optional[float] = Field(None, nullable=True)
chart_oem_bd_cost: Optional[float] = Field(None, nullable=True)
chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, nullable=True)
chart_oem_annualized: Optional[float] = Field(None, nullable=True)
chart_capex_component_a: Optional[float] = Field(None, nullable=True)
chart_capex_biaya_investasi_tambahan: Optional[float] = Field(None, nullable=True)
chart_capex_acquisition_cost: Optional[float] = Field(None, nullable=True)
chart_capex_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_total_revenue: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_a: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_b: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_c: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_d: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_fuel_cost_component_c: Optional[float] = Field(None, nullable=True)
fs_chart_fuel_cost: Optional[float] = Field(None, nullable=True)
fs_chart_fuel_cost_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_oem_component_bd: Optional[float] = Field(None, nullable=True)
fs_chart_oem_bd_cost: Optional[float] = Field(None, nullable=True)
fs_chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, nullable=True)
fs_chart_oem_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_capex_component_a: Optional[float] = Field(None, nullable=True)
tahun: Optional[int] = Field(None, nullable=True, ge=0, le=9999)
is_actual: Optional[int] = Field(None, nullable=True, ge=0, le=1)
seq: Optional[int] = Field(None, nullable=True, ge=0, le=9999)
chart_total_revenue: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_revenue_a: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_revenue_b: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_revenue_c: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_revenue_d: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_revenue_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_fuel_cost_component_c: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_fuel_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_fuel_cost_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_oem_component_bd: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_oem_bd_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_oem_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_capex_component_a: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_capex_biaya_investasi_tambahan: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_capex_acquisition_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
chart_capex_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_total_revenue: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_a: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_b: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_c: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_d: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_fuel_cost_component_c: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_fuel_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_fuel_cost_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_component_bd: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_bd_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_capex_component_a: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_capex_biaya_investasi_tambahan: Optional[float] = Field(
None, nullable=True
None, nullable=True, ge=0, le=1_000_000_000_000_000
)
fs_chart_capex_acquisition_cost: Optional[float] = Field(None, nullable=True)
fs_chart_capex_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_capex_acquisition_cost: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
fs_chart_capex_annualized: Optional[float] = Field(None, nullable=True, ge=0, le=1_000_000_000_000_000)
class PlantChartData(DefaultBase):
items: List[PlantTransactionChart]
bep_year: Optional[int] = Field(int, nullable=True)
bep_total_lcc: Optional[float] = Field(float, nullable=True)
bep_year: Optional[int] = Field(int, nullable=True, ge=0, le=9999)
bep_total_lcc: Optional[float] = Field(float, nullable=True, ge=0, le=1_000_000_000_000_000)
class PlantTransactionDataCreate(PlantTransactionDataBase):

@ -7,10 +7,10 @@ from src.models import DefaultBase, Pagination
class YeardataBase(DefaultBase):
year: Optional[int] = Field(None, nullable=True)
rp_per_kwh: Optional[float] = Field(None, nullable=True)
total_lost: Optional[float] = Field(None, nullable=True)
man_hour: Optional[float] = Field(None, nullable=True)
year: Optional[int] = Field(None, nullable=True, ge=1900)
rp_per_kwh: Optional[float] = Field(None, nullable=True, gt=0, le=1_000_000_000_000_000)
total_lost: Optional[float] = Field(None, nullable=True, gt=0, le=1_000_000_000_000_000)
man_hour: Optional[float] = Field(None, nullable=True, gt=0, le=1_000_000_000_000_000)
created_at: Optional[datetime] = Field(None, nullable=True)
updated_at: Optional[datetime] = Field(None, nullable=True)
created_by: Optional[str] = Field(None, nullable=True)

Loading…
Cancel
Save