You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.8 KiB
47 lines
1.8 KiB
from .database import Model
|
|
from sqlalchemy.orm import mapped_column, Mapped, relationship
|
|
from sqlalchemy import String, Boolean, ForeignKey, Date
|
|
from sqlalchemy.dialects.mssql import SQL_VARIANT, UNIQUEIDENTIFIER
|
|
from uuid import UUID
|
|
from datetime import date
|
|
class Role(Model):
|
|
__tablename__ = "roles"
|
|
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
|
name: Mapped[str] = mapped_column(String(255),nullable=False)
|
|
|
|
class User(Model):
|
|
__tablename__ = "users"
|
|
|
|
id: Mapped[int] = mapped_column( primary_key=True)
|
|
firstname: Mapped[str] = mapped_column(String(255),nullable=False)
|
|
lastname: Mapped[str] = mapped_column(String(255),nullable=False)
|
|
email: Mapped[str] = mapped_column(String(255),nullable=False)
|
|
hashed_password: Mapped[str] = mapped_column(String(255),nullable=False)
|
|
is_active: Mapped[bool] = mapped_column(Boolean,default=True)
|
|
role_id: Mapped[int] = mapped_column(ForeignKey("roles.id"))
|
|
role: Mapped["Role"] = relationship()
|
|
|
|
|
|
class Object(Model):
|
|
__tablename__ = "vObjects"
|
|
|
|
id: Mapped[UUID] = mapped_column(UNIQUEIDENTIFIER, primary_key=True)
|
|
id_parent: Mapped[UUID|None] = mapped_column(UNIQUEIDENTIFIER,nullable=True)
|
|
year: Mapped[int | None] = mapped_column(nullable=False)
|
|
id_city: Mapped[int] = mapped_column(nullable=False)
|
|
|
|
|
|
class Value(Model):
|
|
__tablename__ = "vValues"
|
|
id: Mapped[int] = mapped_column( primary_key=True)
|
|
id_object: Mapped[UUID] = mapped_column(ForeignKey("vObjects.id"))
|
|
id_param:Mapped[int] = mapped_column(nullable=False)
|
|
value:Mapped[str|None] = mapped_column(String(250))
|
|
date_s: Mapped[date] = mapped_column(Date,nullable=False)
|
|
date_po: Mapped[date|None] = mapped_column(Date,nullable=True)
|
|
id_user:Mapped[int] = mapped_column(nullable=False)
|
|
|
|
|
|
# class Parameter(Model):
|
|
# __tablename__ = "vParameters"
|