from datetime import datetime from typing import Optional import uuid from sqlalchemy import Column, DateTime, String, Boolean, Integer from sqlmodel import Field, SQLModel from utils.datetime_utils import get_current_utc_datetime class ClientModel(SQLModel, table=True): __tablename__ = "clients" id: uuid.UUID = Field(primary_key=True, default_factory=uuid.uuid4) name: str slug: str = Field(sa_column=Column(String, unique=True, index=True)) logo_path: Optional[str] = Field( sa_column=Column(String, nullable=True), default=None ) retention_days: Optional[int] = Field( sa_column=Column(Integer, nullable=True), default=None ) review_policy: str = Field(default="self_approve") # self_approve, require_reviewer is_active: bool = Field(sa_column=Column(Boolean, default=True, nullable=False)) created_at: datetime = Field( sa_column=Column( DateTime(timezone=True), nullable=False, default=get_current_utc_datetime ), ) updated_at: datetime = Field( sa_column=Column( DateTime(timezone=True), nullable=False, default=get_current_utc_datetime, onupdate=get_current_utc_datetime, ), )