-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathmodels.py
43 lines (30 loc) · 1.32 KB
/
models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String
from sqlalchemy.orm import relationship
from .database import Base
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
username = Column(String, unique=True)
email = Column(String, unique=True)
password = Column(String)
full_name = Column(String)
description = Column(String, default="Happy new user!")
avatar = Column(String, default="profile.png")
is_active = Column(Boolean, default=True)
events = relationship(
"Event", cascade="all, delete", back_populates="owner")
token = relationship("Token", uselist=False, cascade="all, delete", back_populates="owner")
class Event(Base):
__tablename__ = "events"
id = Column(Integer, primary_key=True, index=True)
title = Column(String)
content = Column(String)
start = Column(DateTime, nullable=False)
end = Column(DateTime, nullable=False)
owner_id = Column(Integer, ForeignKey("users.id"))
owner = relationship("User", back_populates="events")
class Token(Base):
__tablename__ = "tokens"
id = Column(String, primary_key=True, index=True)
owner_id = Column(Integer, ForeignKey("users.id"), nullable=False, unique=True)
owner = relationship("User", back_populates="token")