models.py 12 KB

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