models.py 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. from tortoise import fields
  2. from tortoise.models import Model
  3. from pydantic import BaseModel
  4. from datetime import datetime
  5. from tortoise import fields
  6. from tortoise.models import Model
  7. from pydantic import BaseModel
  8. from datetime import datetime
  9. class User(Model):
  10. id = fields.IntField(pk=True)
  11. username = fields.CharField(max_length=30, unique=True, description="帳號")
  12. password = fields.CharField(max_length=128, description="密碼")
  13. email = fields.CharField(max_length=128, description="信箱")
  14. points = fields.IntField(description="點數")
  15. is_superuser = fields.IntField(description="超級使用者")
  16. is_gmail = fields.IntField(description="是否使用gmail登入")
  17. token = fields.CharField(max_length=200)
  18. class UserPydantic(BaseModel):
  19. id: int
  20. username: str
  21. password: str
  22. email: str
  23. points: int
  24. is_superuser: int
  25. is_gmail: int
  26. token: str
  27. class Config:
  28. orm_mode = True
  29. class UserPydantic(BaseModel):
  30. id: int
  31. username: str
  32. password: str
  33. email: str
  34. points: int
  35. is_superuser: int
  36. is_gmail: int
  37. token: str
  38. class Config:
  39. orm_mode = True
  40. #學校
  41. class Schools(Model):
  42. id = fields.IntField(pk=True)
  43. name = fields.CharField(max_length=45, description="學校名稱")
  44. longitude = fields.CharField(max_length=100, description="經度")
  45. latitude = fields.CharField(max_length=100, description="緯度")
  46. address = fields.CharField(max_length=128,description="地址")
  47. update_time = fields.DatetimeField(description="更新時間")
  48. def show_data(self):
  49. return {
  50. "location_id": self.id,
  51. "location_name": self.name,
  52. "Lng": self.longitude,
  53. "Lat": self.latitude,
  54. "address": self.address,
  55. "update_time":self.update_time
  56. }
  57. class Group_name(Model):
  58. id = fields.IntField(pk=True)
  59. group_name = fields.CharField(max_length=45, description="學群名稱")
  60. class Class_name(Model):
  61. id = fields.IntField(pk=True)
  62. name = fields.CharField(max_length=45, description="課程名稱")
  63. school_id = fields.IntField(description="學校ID")
  64. category = fields.CharField(max_length=45, description="分類")
  65. introduction = fields.TextField(description="簡介", null=True)
  66. organizer = fields.CharField(max_length=45, description="主辦單位", null=True)
  67. cover_img = fields.CharField(max_length=255, description="封面圖片", null=True)
  68. group_id = fields.IntField(description="學群")
  69. group_sort = fields.CharField(max_length=45, description="學群細分")
  70. special_class_list_name = fields.CharField(max_length=45, description="特殊表格", null=True)
  71. recommend = fields.IntField(description="是否在首頁")
  72. def show_data(self):
  73. return {
  74. "class_name_id": self.id,
  75. "name": self.name,
  76. "category": self.category,
  77. "introduction": self.introduction,
  78. "organizer": self.organizer,
  79. "group_id": self.group_id,
  80. "cover_img": self.cover_img,
  81. "group_sort":self.group_sort,
  82. "recommend" : self.recommend
  83. }
  84. class Class_list(Model):
  85. id = fields.IntField(pk=True)
  86. name_id = fields.IntField(description="課程名稱ID")
  87. event = fields.CharField(max_length=45, description="場次", null=True)
  88. start_time = fields.DatetimeField(description="開始時間", null=True)
  89. end_time = fields.DatetimeField(description="結束時間", null=True)
  90. contact = fields.CharField(max_length=255, description="聯絡方式", null=True)
  91. lecturer = fields.CharField(max_length=255, description="講師", null=True)
  92. location = fields.CharField(max_length=255, description="地點詳情", null=True)
  93. content = fields.TextField(description="內容", null=True)
  94. URL = fields.TextField(description="連結網址", null=True)
  95. people = fields.CharField(max_length=255, description="對象", null=True)
  96. fee_method = fields.CharField(max_length=255, description="收費方式", null=True)
  97. registration_way = fields.CharField(max_length=255, description="報名方式", null=True)
  98. remark = fields.TextField(description="備註", null=True)
  99. def show_data(self):
  100. return {
  101. "event_id": self.id,
  102. "name_id": self.name_id,
  103. "event": self.event,
  104. "start_time": self.start_time,
  105. "end_time": self.end_time,
  106. "location": self.location,
  107. "lecturer": self.lecturer,
  108. "contact": self.contact,
  109. "content": self.content,
  110. "URL": self.URL,
  111. "people": self.people,
  112. "fee_method": self.fee_method,
  113. "registration_way": self.registration_way,
  114. "remark": self.remark
  115. }
  116. class Class_detail(Model):
  117. id = fields.IntField(pk=True)
  118. class_list_id = fields.IntField(description="課程場次ID")
  119. start_time = fields.DatetimeField(description="開始時間")
  120. end_time = fields.DatetimeField(description="結束時間")
  121. sessions = fields.IntField(description="堂數")
  122. content = fields.TextField(description="內容", null=True)
  123. class Registration(Model):
  124. id = fields.IntField(pk=True)
  125. event_id = fields.IntField(description="課程ID")
  126. user_id = fields.IntField(description="使用者ID")
  127. reg_confirm = fields.IntField(description="報名確認(1:報名成功 0:單純報名)")
  128. is_del = fields.IntField(description="是否取消(1:yes ,0:no)")
  129. create_time = fields.DatetimeField(description="創建時間")
  130. class News(Model):
  131. id = fields.IntField(pk=True)
  132. title = fields.CharField(max_length=200, description="標題")
  133. category = fields.CharField(max_length=45, description="類別", null=True)
  134. create_time = fields.DatetimeField(description="發布時間")
  135. click_time = fields.IntField(description="點擊次數", null=True)
  136. content = fields.TextField(description="內容", null=True)
  137. files = fields.TextField(description="附加檔案", null=True)
  138. URL = fields.TextField(description="外部連結", null=True)
  139. tags = fields.TextField(description="標籤", null=True)
  140. cover_img = fields.CharField(max_length=255, description="封面圖片", null=True)
  141. class Favorite_course(Model):
  142. id = fields.IntField(pk=True)
  143. user_id = fields.IntField(description="使用者ID")
  144. class_name_id = fields.IntField(description="課程ID")
  145. time_stemp = fields.DatetimeField(description="時間")
  146. class Article_list(Model):
  147. id = fields.IntField(pk=True)
  148. title = fields.CharField(max_length=45, description="標題")
  149. school_id = fields.IntField(description="學校ID", null=True)
  150. group_id = fields.IntField(description="學群", null=True)
  151. group_sort = fields.CharField(max_length=45, description="學群細分", null=True)
  152. create_user_id = fields.IntField(description="創建使用者ID", null=True)
  153. create_time = fields.DatetimeField(description="創建時間", null=True)
  154. latest_update_user_id = fields.IntField(description="最新更新使用者ID", null=True)
  155. latest_update_time = fields.DatetimeField(description="最新更新時間", null=True)
  156. tags = fields.TextField(description="標籤", null=True)
  157. category = fields.CharField(max_length=45, description="類別", null=True)
  158. depiction = fields.TextField(description="文章描述", null=True)
  159. cover_img = fields.TextField( description="封面圖片", null=True)
  160. vedio_url = fields.TextField( description="影片連結", null=True)
  161. click_time = fields.IntField(description="點擊次數", null=True)
  162. content = fields.TextField(description="內容", null=True)
  163. is_del = fields.IntField(description="是否刪除")
  164. files = fields.TextField(description="附件", null=True)
  165. url = fields.TextField(description="文章連結", null=True)
  166. class Online_course(Model):
  167. id = fields.IntField(pk=True)
  168. title = fields.CharField(max_length=45, description="標題")
  169. category = fields.CharField(max_length=45, description="類別", null=True)
  170. create_time = fields.DatetimeField(description="發布時間")
  171. click_time = fields.IntField(description="點擊次數", null=True)
  172. content = fields.TextField(description="發布時間", null=True)
  173. vedio_url = fields.TextField(description="影片連結")
  174. group_id = fields.IntField(description="學群", null=True)
  175. class Guidance_group(Model):
  176. id = fields.IntField(pk=True)
  177. name = fields.CharField(max_length=125, description="協會(團體)名稱")
  178. contact_person = fields.CharField(max_length=125, description="聯絡人")
  179. contact_phone = fields.CharField(max_length=125, description="聯絡電話")
  180. line = fields.IntField(description="LINE (0:沒有、1:有)")
  181. address = fields.TextField(description="地址")
  182. email = fields.CharField(max_length=125, description="信箱")
  183. information = fields.TextField(description="開課資訊")
  184. request = fields.TextField(description="需求")
  185. schedule = fields.CharField(max_length=45, description="處理進度")
  186. result = fields.CharField(max_length=125, description="處理結果")
  187. person = fields.CharField(max_length=45, description="輔導人員")
  188. remark = fields.TextField(description="備註")
  189. class User_information(Model):
  190. id = fields.IntField(pk=True)
  191. user_id = fields.IntField(description="使用者ID")
  192. name = fields.CharField(max_length=45, description="姓名")
  193. birthday = fields.DateField(description="生日")
  194. gender = fields.CharField(max_length=45, description="性別")
  195. phone = fields.CharField(max_length=45, description="電話")
  196. address = fields.TextField(description="地址")
  197. is_default = fields.IntField(description="是否為預設")
  198. class Class_date(Model):
  199. id = fields.IntField(pk=True)
  200. class_list_id = fields.IntField(description="場次ID")
  201. registration_start = fields.DatetimeField(description="報名時間開始", null=True)
  202. registration_end = fields.DatetimeField(description="報名時間結束", null=True)
  203. number_limit = fields.IntField(description="名額", null=True)
  204. amount_left = fields.IntField(description="剩餘名額", null=True)
  205. class Attend_record(Model):
  206. id = fields.IntField(pk=True)
  207. class_detail_id = fields.IntField(description="課堂ID")
  208. user_id = fields.IntField(description="使用者ID")
  209. is_attend = fields.IntField(description="是否已出席(1:是、0:否)")
  210. class One_day_class(Model):
  211. id = fields.IntField(pk=True)
  212. name_id = fields.IntField(description="課程名稱")
  213. teacher = fields.CharField(max_length=100, description="老師", null=True)
  214. contact = fields.CharField(max_length=100, description="聯絡方式", null=True)
  215. start_time = fields.DatetimeField(description="開始時間", null=True)
  216. end_time = fields.DatetimeField(description="結束時間", null=True)
  217. reg_deadline = fields.DatetimeField(description="報名結束時間", null=True)
  218. remark = fields.TextField(description="備註", null=True)
  219. people = fields.CharField(max_length=255, description="對象", null=True)
  220. way = fields.CharField(max_length=45, description="上課方式", null=True)
  221. fee_method = fields.TextField(description="收費方式", null=True)
  222. material = fields.TextField(description="材料", null=True)
  223. tools = fields.TextField(description="材料", null=True)
  224. number_limit = fields.TextField(description="人數限制", null=True)
  225. def show_data(self):
  226. return {
  227. "id" : self.id,
  228. "name_id": self.name_id,
  229. "teacher": self.teacher,
  230. "contact": self.contact,
  231. "start_time": self.start_time,
  232. "end_time": self.end_time,
  233. "reg_deadline": self.reg_deadline,
  234. "remark": self.remark,
  235. "people": self.people,
  236. "way": self.way,
  237. "material": self.material,
  238. "tools": self.tools,
  239. "number_limit": self.number_limit
  240. }