HR-ATS-Portal/backend/role/models.py

30 lines
1.1 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, Boolean, Enum as SAEnum
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import relationship
from sqlmodel import SQLModel
from datetime import datetime
from enum import Enum
class EnumRoles(Enum):
SYSTEM_ADMINISTRATOR = "system_administrator"
HR_ADMINISTRATOR = "hr_administrator"
RECRUITER = "recruiter"
HIRING_MANAGER = "hiring_manager"
DEPARTMENT_HEAD = "department_head"
INTERVIEWER = "interviewer"
CEO = "ceo"
CANDIDATE = "candidate"
class Roles(SQLModel,table=True):
__tablename__ = "roles"
id = Column(Integer, primary_key=True,autoincrement=True)
role_name = Column(SAEnum(EnumRoles),nullable=False,unique=True,default=EnumRoles.SYSTEM_ADMINISTRATOR)
description = Column(String,nullable=True,default="System Administrator")
permissions = Column(JSONB,nullable=True)
created_at = Column(DateTime,default=datetime.now)
updated_at = Column(DateTime,default=datetime.now)
is_active = Column(Boolean,default=True)
is_deleted = Column(Boolean,default=False)
users = relationship("Users", back_populates="role")