39 lines
1.2 KiB
Python

from pillar_tool.db.base_model import Base
from sqlalchemy import Column, UUID, String, ForeignKey, UniqueConstraint, Boolean
import uuid
class Environment(Base):
__tablename__ = "pillar_tool_environment"
id = Column(UUID, primary_key=True, default=uuid.uuid4)
name = Column(String, nullable=False)
__table_args__ = (
UniqueConstraint('name', name="pillar_tool_unique_environment_unique_name")
)
class State(Base):
__tablename__ = "pillar_tool_state"
id = Column(UUID, primary_key=True, default=uuid.uuid4)
name = Column(String, nullable=False)
__table_args__ = (
UniqueConstraint('name', name="pillar_tool_unique_state_unique_name")
)
class StateAssignment(Base):
__tablename__ = "pillar_tool_state_assignment"
id = Column(UUID, primary_key=True, default=uuid.uuid4)
environment_id = Column(UUID, ForeignKey("pillar_tool_environment.id"), nullable=False)
state_id = Column(UUID, ForeignKey("pillar_tool_state.id"), nullable=False)
host_id = Column(UUID, ForeignKey("pillar_tool_host.id"), nullable=False)
__table_args__ = (
UniqueConstraint('environment_id', 'state_id', 'host_id', name="pillar_tool_state_assignment_unique_env_state_host"),
)