@@ -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
6379class 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-
101111class 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
116132class Message (SQLModel ):
117133 message : str
0 commit comments