11from datetime import datetime , timezone
2- from sqlalchemy import Boolean , Column , DateTime , ForeignKey , Integer , String , Text , JSON
2+
3+ from sqlalchemy import (
4+ JSON ,
5+ Boolean ,
6+ Column ,
7+ DateTime ,
8+ ForeignKey ,
9+ Integer ,
10+ String ,
11+ Text ,
12+ )
313from sqlalchemy .orm import DeclarativeBase , relationship
414
515
@@ -10,27 +20,45 @@ class Base(DeclarativeBase):
1020class User (Base ):
1121 __tablename__ = "users"
1222
13- id = Column (Integer , primary_key = True , index = True )
14- email = Column (String (255 ), unique = True , nullable = False , index = True )
15- username = Column (String (100 ), unique = True , nullable = False , index = True )
16- hashed_password = Column (String (255 ), nullable = False )
17- is_active = Column (Boolean , default = True , nullable = False )
18- created_at = Column (DateTime (timezone = True ), default = lambda : datetime .now (timezone .utc ), nullable = False )
19- updated_at = Column (DateTime (timezone = True ), default = lambda : datetime .now (timezone .utc ), nullable = False )
23+ id = Column (Integer , primary_key = True , index = True )
24+ email = Column (String (255 ), unique = True , nullable = False , index = True )
25+ username = Column (String (100 ), unique = True , nullable = False , index = True )
26+ hashed_password = Column (String (255 ), nullable = False )
27+ is_active = Column (Boolean , default = True , nullable = False )
28+ created_at = Column (
29+ DateTime (timezone = True ),
30+ default = lambda : datetime .now (timezone .utc ),
31+ nullable = False ,
32+ )
33+ updated_at = Column (
34+ DateTime (timezone = True ),
35+ default = lambda : datetime .now (timezone .utc ),
36+ nullable = False ,
37+ )
2038
21- analyses = relationship ("Analysis" , back_populates = "user" , cascade = "all, delete-orphan" )
22- share_links = relationship ("ShareLink" , back_populates = "user" , cascade = "all, delete-orphan" )
39+ analyses = relationship (
40+ "Analysis" , back_populates = "user" , cascade = "all, delete-orphan"
41+ )
42+ share_links = relationship (
43+ "ShareLink" , back_populates = "user" , cascade = "all, delete-orphan"
44+ )
2345
2446
2547class ShareLink (Base ):
2648 __tablename__ = "share_links"
2749
28- id = Column (Integer , primary_key = True , index = True )
29- short_id = Column (String (16 ), unique = True , nullable = False , index = True )
30- code = Column (Text , nullable = False )
31- result = Column (JSON , nullable = False )
32- user_id = Column (Integer , ForeignKey ("users.id" , ondelete = "SET NULL" ), nullable = True , index = True )
33- created_at = Column (DateTime (timezone = True ), default = lambda : datetime .now (timezone .utc ), nullable = False )
50+ id = Column (Integer , primary_key = True , index = True )
51+ short_id = Column (String (16 ), unique = True , nullable = False , index = True )
52+ code = Column (Text , nullable = False )
53+ result = Column (JSON , nullable = False )
54+ user_id = Column (
55+ Integer , ForeignKey ("users.id" , ondelete = "SET NULL" ), nullable = True , index = True
56+ )
57+ created_at = Column (
58+ DateTime (timezone = True ),
59+ default = lambda : datetime .now (timezone .utc ),
60+ nullable = False ,
61+ )
3462 expires_at = Column (DateTime (timezone = True ), nullable = False )
3563
3664 user = relationship ("User" , back_populates = "share_links" )
@@ -39,12 +67,18 @@ class ShareLink(Base):
3967class Analysis (Base ):
4068 __tablename__ = "analyses"
4169
42- id = Column (Integer , primary_key = True , index = True )
43- user_id = Column (Integer , ForeignKey ("users.id" , ondelete = "CASCADE" ), nullable = False , index = True )
44- language = Column (String (50 ), nullable = True )
70+ id = Column (Integer , primary_key = True , index = True )
71+ user_id = Column (
72+ Integer , ForeignKey ("users.id" , ondelete = "CASCADE" ), nullable = False , index = True
73+ )
74+ language = Column (String (50 ), nullable = True )
4575 code_snippet = Column (Text , nullable = False )
46- result = Column (JSON , nullable = False )
47- provider = Column (String (50 ), nullable = False , default = "rule-based" )
48- created_at = Column (DateTime (timezone = True ), default = lambda : datetime .now (timezone .utc ), nullable = False )
76+ result = Column (JSON , nullable = False )
77+ provider = Column (String (50 ), nullable = False , default = "rule-based" )
78+ created_at = Column (
79+ DateTime (timezone = True ),
80+ default = lambda : datetime .now (timezone .utc ),
81+ nullable = False ,
82+ )
4983
5084 user = relationship ("User" , back_populates = "analyses" )
0 commit comments