тесты
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

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"