first commit
This commit is contained in:
41
helix/models/sql/sites.py
Normal file
41
helix/models/sql/sites.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from sqlalchemy import Column, Integer, Unicode, Float, Enum, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from helix.constants.anchor_type import AnchorType
|
||||
from helix.constants.module_type import ModuleType
|
||||
from helix.constants.system_type import SystemType
|
||||
from helix.models.sql.inverter_brands import InverterBrand
|
||||
from helix.models.sql.power_monitors import PowerMonitor
|
||||
from helix.models.sql.power_stations import PowerStation
|
||||
from helix.models.sql.shared_sql_base import Base
|
||||
from helix.models.sql.standalone_inverters import StandaloneInverter
|
||||
|
||||
|
||||
class Site(Base):
|
||||
__tablename__ = 'sites'
|
||||
id = Column(Integer, primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
|
||||
project_name = Column(Unicode, nullable=False)
|
||||
building_height = Column(Float, nullable=False)
|
||||
building_width = Column(Float, nullable=False)
|
||||
building_length = Column(Float, nullable=False)
|
||||
parapet_height = Column(Float, nullable=False)
|
||||
wind_speed = Column(Integer, nullable=False)
|
||||
exposure_category = Column(Unicode, nullable=False)
|
||||
exposure_transition_distance = Column(Integer)
|
||||
ballast_block_weight = Column(Integer, nullable=False)
|
||||
max_psf = Column(Float, nullable=False)
|
||||
system_type = Column(Enum(SystemType.singleTilt.value, SystemType.dualTilt.value, name='SystemType'), nullable=False)
|
||||
module_type = Column(Enum(ModuleType.Cell96.value, ModuleType.Cell128.value, ModuleType.PSeries.value, name='ModuleType'), nullable=False)
|
||||
anchor_type = Column(Enum(AnchorType.OMG_PowerGrip.value, AnchorType.OMG_PowerGrip_Plus.value, AnchorType.EcoFasten.value, name='AnchorType'), nullable=False)
|
||||
spectral_response = Column(Float, nullable=False)
|
||||
seismic_importance_factor = Column(Float, nullable=False)
|
||||
cad_file = Column(Unicode)
|
||||
cad_file_name = Column(Unicode)
|
||||
dxf_file = Column(Unicode)
|
||||
dxf_file_name = Column(Unicode)
|
||||
|
||||
inverter_brands = relationship(InverterBrand.__name__, backref="site", cascade="save-update, merge, delete")
|
||||
power_stations = relationship(PowerStation.__name__, backref="site", cascade="save-update, merge, delete")
|
||||
standalone_inverters = relationship(StandaloneInverter.__name__, backref="site", cascade="save-update, merge, delete")
|
||||
power_monitors = relationship(PowerMonitor.__name__, backref="site", cascade="save-update, merge, delete")
|
||||
Reference in New Issue
Block a user