from typing import Optional
from pydantic import BaseModel
from datetime import datetime

# 基础Admin模型
class AdminBase(BaseModel):
    weid: str
    username: str
    pcate_id: int
    cate_id: int
    relation_id: str
    is_delete: int = 1

# 创建Admin时的请求模型
class AdminCreate(AdminBase):
    password: str

# 更新Admin时的请求模型
class AdminUpdate(BaseModel):
    weid: Optional[str] = None
    username: Optional[str] = None
    password: Optional[str] = None
    pcate_id: Optional[int] = None
    cate_id: Optional[int] = None
    relation_id: Optional[str] = None
    is_delete: Optional[int] = None

# Admin响应模型
class Admin(AdminBase):
    id: int
    createtime: int
    logintime: int

    class Config:
        orm_mode = True


class AccountBase(BaseModel):
    uniacid: int
    hash: str
    type: int
    isconnect: int
    isdeleted: int
    endtime: int
    send_account_expire_status: int
    send_api_expire_status: int

class AccountCreate(AccountBase):
    pass

class AccountUpdate(AccountBase):
    pass

class Account(AccountBase):
    acid: int
    
    class Config:
        orm_mode = True





class AccountWebappBase(BaseModel):
    uniacid: Optional[int]
    name: Optional[str]

class AccountWebappCreate(AccountWebappBase):
    pass

class AccountWebappUpdate(AccountWebappBase):
    pass

class AccountWebapp(AccountWebappBase):
    acid: int

    class Config:
        orm_mode = True