from sqlalchemy import Boolean, Column, DateTime, Float, ForeignKey, Integer, String, Text from sqlalchemy.sql import func from app.db.mock_database import MockBase class Vehicle(MockBase): __tablename__ = "vehicles" id = Column(Integer, primary_key=True, index=True) modelo = Column(String(120), nullable=False) categoria = Column(String(50), nullable=False, index=True) preco = Column(Float, nullable=False, index=True) created_at = Column(DateTime, server_default=func.current_timestamp()) class Customer(MockBase): __tablename__ = "customers" id = Column(Integer, primary_key=True, index=True) cpf = Column(String(11), unique=True, nullable=False, index=True) nome = Column(String(120), nullable=False) score = Column(Integer, nullable=False) limite_credito = Column(Float, nullable=False) possui_restricao = Column(Boolean, nullable=False, default=False) created_at = Column(DateTime, server_default=func.current_timestamp()) class Order(MockBase): __tablename__ = "orders" id = Column(Integer, primary_key=True, index=True) numero_pedido = Column(String(40), unique=True, nullable=False, index=True) cpf = Column(String(11), ForeignKey("customers.cpf"), nullable=False, index=True) status = Column(String(20), nullable=False, default="Ativo") motivo_cancelamento = Column(Text, nullable=True) data_cancelamento = Column(DateTime, nullable=True) created_at = Column(DateTime, server_default=func.current_timestamp()) updated_at = Column( DateTime, server_default=func.current_timestamp(), onupdate=func.current_timestamp(), ) class ReviewSchedule(MockBase): __tablename__ = "review_schedules" id = Column(Integer, primary_key=True, index=True) protocolo = Column(String(50), unique=True, nullable=False, index=True) placa = Column(String(10), nullable=False, index=True) data_hora = Column(DateTime, nullable=False) status = Column(String(20), nullable=False, default="agendado") created_at = Column(DateTime, server_default=func.current_timestamp())