Skip to content

Commit ab40aff

Browse files
✨ Add Question model and relationship to User; enhance data structure
1 parent 0d4d038 commit ab40aff

1 file changed

Lines changed: 22 additions & 6 deletions

File tree

backend/app/models.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ class User(UserBase, table=True):
4747
documents: list["Document"] = Relationship(
4848
back_populates="owner", cascade_delete=True
4949
)
50+
questions: list["Question"] = Relationship(
51+
back_populates="owner", cascade_delete=True
52+
)
5053

5154

5255
# Properties to return via API, id is always required
@@ -59,6 +62,19 @@ class UsersPublic(SQLModel):
5962
count: int
6063

6164

65+
class QuestionBase(SQLModel):
66+
question: str = Field(min_length=1, max_length=255)
67+
answer: str | None = Field(default=None, max_length=1000)
68+
69+
70+
class Question(QuestionBase, table=True):
71+
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
72+
owner_id: uuid.UUID = Field(
73+
foreign_key="user.id", nullable=False, ondelete="CASCADE"
74+
)
75+
owner: User | None = Relationship(back_populates="questions")
76+
77+
6278
# Shared properties
6379
class DocumentBase(SQLModel):
6480
filename: str = Field(min_length=1, max_length=255)
@@ -92,12 +108,6 @@ class Document(DocumentBase, table=True):
92108
)
93109

94110

95-
# Properties to return via API, id is always required
96-
# class DocumentPublic(DocumentBase):
97-
# id: uuid.UUID
98-
# owner_id: uuid.UUID
99-
100-
101111
class DocumentPublic(DocumentBase):
102112
id: uuid.UUID
103113
owner_id: uuid.UUID
@@ -112,6 +122,12 @@ class DocumentsPublic(SQLModel):
112122
count: int
113123

114124

125+
# Questions model
126+
class QuestionBase(SQLModel):
127+
question: str = Field(min_length=1, max_length=255)
128+
answer: str | None = Field(default=None, max_length=1000)
129+
130+
115131
# Generic message
116132
class Message(SQLModel):
117133
message: str

0 commit comments

Comments
 (0)