from sqlalchemy import Column, String, Integer, DateTime, ForeignKey from sqlalchemy.sql import func from pydantic import BaseModel, Field from typing import Optional from datetime import datetime from .database import Base class UserBankCardDB(Base): __tablename__ = "user_bank_cards" id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, ForeignKey("users.userid"), nullable=False) name = Column(String(50), nullable=False) card_number = Column(String(30), nullable=False) bank_name = Column(String(100), nullable=False) create_time = Column(DateTime(timezone=True), server_default=func.now()) update_time = Column(DateTime(timezone=True), onupdate=func.now()) class BankCardCreate(BaseModel): name: str = Field(..., min_length=2, max_length=50) card_number: str = Field(..., min_length=16, max_length=19, pattern="^[0-9]{16,19}$") bank_name: str = Field(..., max_length=100) class BankCardInfo(BaseModel): id: int name: str card_number: str bank_name: str create_time: datetime class Config: from_attributes = True