-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodels.py
110 lines (93 loc) · 4.83 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
from init import app
from flask import Flask, request, json, Response
from flask_sqlalchemy import SQLAlchemy
import config
db = SQLAlchemy(app)
user_in_group = db.Table('user_in_group',
db.Column('user_id',db.Integer,db.ForeignKey('user.id'),primary_key=True),
db.Column('group_id',db.Integer,db.ForeignKey('group.id'),primary_key=True)
)
user_admin_group = db.Table('user_admin_group',
db.Column('user_id',db.Integer,db.ForeignKey('user.id'),primary_key=True),
db.Column('group_id',db.Integer,db.ForeignKey('group.id'),primary_key=True)
)
user_with_group_invitation = db.Table('user_with_group_invitation',
db.Column('user_id',db.Integer,db.ForeignKey('user.id'),primary_key=True),
db.Column('group_id',db.Integer,db.ForeignKey('group.id'),primary_key=True)
)
user_quit_group = db.Table('user_quit_group',
db.Column('user_id',db.Integer,db.ForeignKey('user.id'),primary_key=True),
db.Column('group_id',db.Integer,db.ForeignKey('group.id'),primary_key=True)
)
user_with_assign_invitation = db.Table('user_with_assign_invitation',
db.Column('user_id',db.Integer,db.ForeignKey('user.id')),
db.Column('assign_id',db.Integer,db.ForeignKey('assignment.id'))
)
user_agree_pendingTask = db.Table('user_agree_pendingTask',
db.Column('user_id',db.Integer,db.ForeignKey('user.id'),primary_key=True),
db.Column('pending_id',db.Integer,db.ForeignKey('pendingtask.id'),primary_key=True)
)
user_disagree_pendingTask = db.Table('user_disagree_pendingTask',
db.Column('user_id',db.Integer,db.ForeignKey('user.id'),primary_key=True),
db.Column('pending_id',db.Integer,db.ForeignKey('pendingtask.id'),primary_key=True)
)
user_take_assign = db.Table('user_take_assign',
db.Column('user_id',db.Integer,db.ForeignKey('user.id')),
db.Column('assign_id',db.Integer,db.ForeignKey('assignment.id'))
)
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, autoincrement = True,primary_key=True)
name = db.Column(db.String(20))
openID = db.Column(db.String(50))
taskList = db.relationship('Task', backref = 'user')
ownAssignList = db.relationship('Assignment', backref = 'user')
pendingTaskList = db.relationship('PendingTask',backref = 'user')
groupList = db.relationship('Group',secondary= user_in_group,backref = db.backref('userList'))
adminGroupList = db.relationship('Group',secondary= user_admin_group,backref = db.backref('adminList'))
assignList = db.relationship('Assignment',secondary= user_take_assign,backref = db.backref('executorList'))
groupInvitationList = db.relationship('Group',secondary= user_with_group_invitation,backref = db.backref('invitingList'))
noticeList = db.relationship('Group',secondary= user_quit_group,backref = db.backref('quiterList'))
assignInvitationList = db.relationship('Assignment',secondary= user_with_assign_invitation,backref = db.backref('invitingList'))
class Group(db.Model):
__tablename__ = 'group'
id = db.Column(db.Integer, autoincrement = True, primary_key=True)
name = db.Column(db.String(20))
owner_id = db.Column(db.Integer)
taskList = db.relationship('Task',backref = 'group')
pendingTaskList = db.relationship('PendingTask',backref = 'group')
assignList = db.relationship('Assignment',backref = 'group')
class Task(db.Model):
__tablename__ = 'task'
id = db.Column(db.Integer, autoincrement = True, primary_key=True)
startTime = db.Column(db.String(20))
endTime = db.Column(db.String(20))
content = db.Column(db.Text)
name = db.Column(db.String(20))
group_id = db.Column(db.Integer,db.ForeignKey('group.id'))
user_id = db.Column(db.Integer,db.ForeignKey('user.id'))
class PendingTask(db.Model):
__tablename__ = 'pendingtask'
id = db.Column(db.Integer, autoincrement = True, primary_key=True)
startTime = db.Column(db.String(20))
endTime = db.Column(db.String(20))
content = db.Column(db.Text)
name = db.Column(db.String(20))
agreeNum = db.Column(db.Integer)
disagreeNum = db.Column(db.Integer)
group_id = db.Column(db.Integer,db.ForeignKey('group.id'))
user_id = db.Column(db.Integer,db.ForeignKey('user.id'))
agreeList = db.relationship('User',secondary= user_agree_pendingTask,backref = db.backref('agreeList'))
disagreeList = db.relationship('User',secondary= user_disagree_pendingTask,backref = db.backref('disagreeList'))
class Assignment(db.Model):
__tablename__ = 'assignment'
id = db.Column(db.Integer, autoincrement = True, primary_key=True)
startTime = db.Column(db.String(20))
endTime = db.Column(db.String(20))
content = db.Column(db.Text)
name = db.Column(db.String(20))
category = db.Column(db.Integer)
prior = db.Column(db.Integer)
group_id = db.Column(db.Integer,db.ForeignKey('group.id'))
publisher_id = db.Column(db.Integer,db.ForeignKey('user.id'))
db.create_all()