deliveryman-api/app/models/user_bank_card.py
2025-01-24 22:23:21 +08:00

32 lines
1.1 KiB
Python

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