Download src/models.py from Corin1998/QRcheckin: direct link, hf CLI and curl.
- Browser
- Download file 1.97 kB
-
https://huggingface.co/spaces/Corin1998/QRcheckin/resolve/main/src/models.py
- Command line
-
hf download hf://spaces/Corin1998/QRcheckin/src/models.py
-
curl -L -o models.py https://huggingface.co/spaces/Corin1998/QRcheckin/resolve/main/src/models.py
1.97 kB
| from typing import Optional | |
| from sqlmodel import SQLModel, Field, Relationship | |
| from datetime import datetime | |
| class User(SQLModel, table=True): | |
| id: Optional[int] = Field(default=None, primary_key=True) | |
| address: str = Field(index=True, unique=True) # Base58の公開鍵(ED25519) | |
| created_at: datetime = Field(default_factory=datetime.utcnow) | |
| visits: list["Visit"] = Relationship(back_populates="user") | |
| balances: list["TokenBalance"] = Relationship(back_populates="user") | |
| class Venue(SQLModel, table=True): | |
| id: Optional[int] = Field(default=None, primary_key=True) | |
| name: str | |
| slug: str = Field(index=True, unique=True) | |
| created_at: datetime = Field(default_factory=datetime.utcnow) | |
| class CheckinSession(SQLModel, table=True): | |
| id: Optional[int] = Field(default=None, primary_key=True) | |
| session_id: str = Field(index=True, unique=True) | |
| venue_id: int = Field(foreign_key="venue.id") | |
| nonce: str | |
| expires_at: datetime | |
| used: bool = Field(default=False) | |
| class Visit(SQLModel, table=True): | |
| id: Optional[int] = Field(default=None, primary_key=True) | |
| user_id: int = Field(foreign_key="user.id") | |
| venue_id: int = Field(foreign_key="venue.id") | |
| session_id: int = Field(foreign_key="checkinsession.id") | |
| created_at: datetime = Field(default_factory=datetime.utcnow, index=True) | |
| user: User = Relationship(back_populates="visits") | |
| class TokenBalance(SQLModel, table=True): | |
| id: Optional[int] = Field(default=None, primary_key=True) | |
| user_id: int = Field(foreign_key="user.id") | |
| symbol: str = Field(default="POINT") | |
| amount: int = Field(default=0) | |
| user: User = Relationship(back_populates="balances") | |
| class RewardLog(SQLModel, table=True): | |
| id: Optional[int] = Field(default=None, primary_key=True) | |
| user_id: int = Field(foreign_key="user.id") | |
| venue_id: int = Field(foreign_key="venue.id") | |
| points: int | |
| created_at: datetime = Field(default_factory=datetime.utcnow) | |