from dataclasses import dataclass from pot_libs.common.components.fields import Cid from pot_libs.sanic_api import Model from pot_libs.sanic_api.column import Str, Int, Float, Opt, List @dataclass class MaxpResp(Model): maxp: float = Float("最大需量").eg(380.11) date_time: str = Str("时间点").eg("2020-05-07 18:30") @dataclass class DistributionReq(Model): cid: Cid start: str = Str("开始时间").eg("2020-09-01 00:00:00") end: str = Str("结束时间").eg("2020-09-30 23:59:59") inline_id: int = Int("进线id").eg(42) @dataclass class LrBins(Model): x: list = List("x坐标").eg(["<=0.05", "0.05-0.10", "0.10-0.15", "0.15-0.20"]) y: str = Str("y值").eg([0.022, 0.0007, 0.0014, 0.0059]) @dataclass class DistributionResp(Model): base_load: float = Float("基础负荷").eg(943.37) mean_load_rate: float = Float("平均负载率").eg(89.33) peak_valley: float = Float("峰谷差").eg(1855.51) max_load: MaxpResp = Opt(MaxpResp) lr_bins: LrBins = Opt(LrBins)