from datetime import datetime
|
from enum import IntEnum
|
from typing import Optional
|
|
from sqlalchemy import Column, Integer, String, DateTime, Enum, Index
|
from pydantic import BaseModel
|
from app.models.base_model import Base
|
|
class GroupStatus(IntEnum):
|
NO = 1
|
OFF = 0
|
|
|
|
class GroupInfoModel(Base):
|
__tablename__ = "group_info"
|
group_id = Column(Integer, primary_key=True, index=True)
|
group_name = Column(String(255), unique=True, nullable=False, index=True)
|
group_description = Column(String(255))
|
group_status = Column(Integer, nullable=False, default=1)
|
created_at = Column(DateTime, default=datetime.now())
|
updated_at = Column(DateTime, default=datetime.now(), onupdate=datetime.now())
|
|
|
def to_dict(self):
|
return {
|
'id': self.group_id,
|
'name': self.group_name,
|
'group_description': self.group_description,
|
'group_status': self.group_status,
|
'created_at': self.created_at.strftime("%Y.%m.%d %H:%M")
|
}
|
|
|
class UserGroupModel(Base):
|
__tablename__ = "user_group"
|
id = Column(Integer, primary_key=True)
|
group_id = Column(Integer, nullable=False)
|
user_id = Column(Integer, nullable=False)
|
Index('ix_user_group_id', group_id, user_id, unique=True)
|
|
|
class GroupData(BaseModel):
|
id: Optional[int] = None
|
group_name: Optional[str] = ""
|
group_description: Optional[str] = ""
|
group_status: Optional[int] = None
|
|
class GroupUsers(BaseModel):
|
id: int
|
user_list: list
|