order-webserver/app/models.py
2025-06-17 19:55:10 +08:00

32 lines
993 B
Python

from sqlmodel import SQLModel, Field
from typing import Optional
from enum import Enum
import datetime
class UserRole(str, Enum):
admin = "admin"
user = "user"
class User(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
username: str = Field(index=True, unique=True)
password_hash: str
role: UserRole = Field(default=UserRole.user)
class OrderStatus(str, Enum):
pending = "pending"
in_progress = "in_progress"
completed = "completed"
class Order(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
title: str
description: Optional[str] = None
created_at: datetime.datetime = Field(default_factory=datetime.datetime.utcnow)
status: OrderStatus = Field(default=OrderStatus.pending)
class TopProductSummary(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
product_name: str = Field(index=True)
sales_count: int = Field(default=0)