deliveryman-api/app/models/user_auth.py
2025-01-24 21:39:10 +08:00

28 lines
1.0 KiB
Python

from sqlalchemy import Column, String, Integer, DateTime, Boolean, ForeignKey, UniqueConstraint
from sqlalchemy.sql import func
from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
from .database import Base
class UserAuthDB(Base):
__tablename__ = "user_auth_records"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("users.userid"), unique=True, nullable=False)
name = Column(String(50), nullable=False)
id_number = Column(String(18), nullable=False)
create_time = Column(DateTime(timezone=True), server_default=func.now())
update_time = Column(DateTime(timezone=True), onupdate=func.now())
class UserAuthCreate(BaseModel):
name: str = Field(..., min_length=2, max_length=50)
id_number: str = Field(..., min_length=18, max_length=18, pattern="^[0-9Xx]{18}$")
class UserAuthInfo(BaseModel):
name: str
id_number: str
create_time: datetime
class Config:
from_attributes = True