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.

143 lines
8.6 KiB
Python

from datetime import datetime
from typing import Any, List, Optional
from uuid import UUID
from pydantic import Field
from src.models import DefaultBase, Pagination
class PlantTransactionDataSimulationsBase(DefaultBase):
simulation_id: Optional[UUID] = Field(None)
tahun: Optional[int] = Field(None, ge=1900, le=9999)
is_actual: Optional[int] = Field(None, ge=0, le=1)
seq: Optional[int] = Field(None, ge=0, le=9999)
net_capacity_factor: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
eaf: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
production_bruto: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
production_netto: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
energy_sales: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fuel_consumption: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
revenue_a: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
revenue_b: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
revenue_c: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
revenue_d: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
revenue_total: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
revenue_pv: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
revenue_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_replacement: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_pm: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_acquisition: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_pinjaman: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_depreciation: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_total: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_pv: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_a_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_c_fuel: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_c_pv: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_c_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_bd_om: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_bd_pm_nonmi: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_bd_bd: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_bd_total: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_bd_pv: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_bd_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_disposal_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
total_expense: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
total_cost_eac: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
total_profit_loss: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
total_residual_value: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
total_profit_loss: Optional[float] = Field(None)
total_residual_value: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
calc_depreciation: Optional[float] = Field(None)
calc_interest_payment: Optional[float] = Field(None)
calc_principal_payment: Optional[float] = Field(None)
calc_dept_amount: Optional[float] = Field(None)
calc2_ebitda: Optional[float] = Field(None)
calc2_earning_before_tax: Optional[float] = Field(None)
calc2_tax: Optional[float] = Field(None)
calc2_earning_after_tax: Optional[float] = Field(None)
calc2_nopat: Optional[float] = Field(None)
calc3_interest_after_tax: Optional[float] = Field(None)
calc3_free_cash_flow_on_project: Optional[float] = Field(None)
calc3_discounted_fcf_on_project: Optional[float] = Field(None)
calc4_principal_repayment: Optional[float] = Field(None)
calc4_free_cash_flow_on_equity: Optional[float] = Field(None)
calc4_discounted_fcf_on_equity: Optional[float] = Field(None)
created_at: Optional[datetime] = Field(None)
updated_at: Optional[datetime] = Field(None)
created_by: Optional[str] = Field(None)
updated_by: Optional[str] = Field(None)
chart_total_revenue: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_revenue_a: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_revenue_b: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_revenue_c: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_revenue_d: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_revenue_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_fuel_cost_component_c: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_fuel_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_fuel_cost_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_oem_component_bd: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_oem_bd_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_oem_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_capex_component_a: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_capex_biaya_investasi_tambahan: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_capex_acquisition_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
chart_capex_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
cost_disposal_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_total_revenue: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_a: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_b: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_c: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_d: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_revenue_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_fuel_cost_component_c: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_fuel_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_fuel_cost_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_component_bd: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_bd_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_oem_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_capex_component_a: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_capex_biaya_investasi_tambahan: Optional[float] = Field(
None, ge=0, le=1_000_000_000_000_000
)
fs_chart_capex_acquisition_cost: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
fs_chart_capex_annualized: Optional[float] = Field(None, ge=0, le=1_000_000_000_000_000)
class PlantTransactionChartSimulations(PlantTransactionDataSimulationsBase):
tahun: Optional[int] = Field(None, ge=0, le=9999)
is_actual: Optional[int] = Field(None, ge=0, le=1)
seq: Optional[int] = Field(None, ge=0, le=9999)
class PlantChartDataSimulations(DefaultBase):
items: List[PlantTransactionChartSimulations]
bep_year: Optional[int] = Field(int, ge=0, le=9999)
bep_total_lcc: Optional[float] = Field(float, ge=0, le=1_000_000_000_000_000)
class PlantTransactionFSImportSimulations(DefaultBase):
data: List[List[Optional[Any]]]
is_actual: Optional[int] = Field(None, ge=0, le=1)
seq: Optional[int] = Field(None, ge=0, le=9999)
simulation_id: UUID = Field(...)
class PlantTransactionDataSimulationsCreate(PlantTransactionDataSimulationsBase):
simulation_id: UUID = Field(...)
class PlantTransactionDataSimulationsUpdate(PlantTransactionDataSimulationsBase):
pass
class PlantTransactionDataSimulationsRead(PlantTransactionDataSimulationsBase):
id: UUID
class PlantTransactionDataSimulationsPagination(Pagination):
items: List[PlantTransactionDataSimulationsRead] = []