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"