30 lines
1.1 KiB
Python
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") |