first commit
This commit is contained in:
29
helix/models/sql/inverters.py
Normal file
29
helix/models/sql/inverters.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from sqlalchemy import Column, Integer, Enum, Boolean, ForeignKey, CheckConstraint
|
||||
from helix.constants.inverter_type import InverterType
|
||||
from helix.models.sql.shared_sql_base import Base
|
||||
|
||||
|
||||
class Inverter(Base):
|
||||
__tablename__ = 'inverters'
|
||||
id = Column(Integer, primary_key=True)
|
||||
model = Column(Enum(*map(lambda x: str(x.value), InverterType.all()), name='invertertype'), nullable=False)
|
||||
strings_per_inverter = Column(Integer, nullable=False)
|
||||
sunshade = Column(Boolean)
|
||||
dc_switch = Column(Boolean)
|
||||
splice_box = Column(Boolean)
|
||||
power_station_id = Column(Integer, ForeignKey('power_stations.id'))
|
||||
standalone_inverter_id = Column(Integer, ForeignKey('standalone_inverters.id', ondelete='CASCADE'))
|
||||
|
||||
__table_args__ = (
|
||||
CheckConstraint('(power_station_id IS NULL != standalone_inverter_id IS NULL)'),
|
||||
)
|
||||
|
||||
def to_json(self):
|
||||
inverter_type = InverterType.SMA if int(self.model) in InverterType.SMA.all() else InverterType.DELTA
|
||||
return {
|
||||
'model': inverter_type(int(self.model)),
|
||||
'strings_per_inverter': self.strings_per_inverter,
|
||||
'sunshade': self.sunshade,
|
||||
'dc_switch': self.dc_switch,
|
||||
'splice_box': self.splice_box,
|
||||
}
|
||||
Reference in New Issue
Block a user