| 12345678910111213141516171819202122232425262728293031323334 |
- from sqlmodel import SQLModel, Field, Relationship, text
- from datetime import datetime
- from typing import Optional, List
- from sqlalchemy import Column, String, Text
- class Subject(SQLModel, table=True):
- __tablename__ = "subject"
- id: Optional[int] = Field(default=None, primary_key=True)
- name: str = Field(max_length=100)
- color: str = Field(default="#6366f1")
- created_at: datetime = Field(default_factory=datetime.now)
- error_images: List["ErrorImage"] = Relationship(back_populates="subject")
- evaluations: List["Evaluation"] = Relationship(back_populates="subject")
- class ErrorImage(SQLModel, table=True):
- __tablename__ = "error_image"
- id: Optional[int] = Field(default=None, primary_key=True)
- subject_id: int = Field(foreign_key="subject.id")
- date: str = Field(max_length=20, index=True)
- filename: str = Field(max_length=255)
- original_name: str = Field(max_length=255)
- upload_time: datetime = Field(default_factory=datetime.now)
- subject: Subject = Relationship(back_populates="error_images")
- class Evaluation(SQLModel, table=True):
- __tablename__ = "evaluation"
- id: Optional[int] = Field(default=None, primary_key=True)
- subject_id: int = Field(foreign_key="subject.id")
- date: str = Field(max_length=20)
- title: str = Field(max_length=200)
- content: str = Field(default="")
- filename: Optional[str] = Field(default=None, max_length=255)
- upload_time: datetime = Field(default_factory=datetime.now)
- subject: Subject = Relationship(back_populates="evaluations")
|