from tortoise import fields from tortoise.models import Model from pydantic import BaseModel from datetime import datetime class User(Model): id = fields.IntField(pk=True) username = fields.CharField(max_length=30, unique=True, description="帳號") password = fields.CharField(max_length=128, description="密碼") email = fields.CharField(max_length=128, description="信箱") points = fields.IntField(description="點數") is_superuser = fields.IntField(description="超級使用者") is_gmail = fields.IntField(description="是否使用gmail登入") token = fields.CharField(max_length=200) class UserPydantic(BaseModel): id: int username: str password: str email: str points: int is_superuser: int is_gmail: int token: str class Config: orm_mode = True #學校 class Schools(Model): id = fields.IntField(pk=True) name = fields.CharField(max_length=45, description="學校名稱") longitude = fields.CharField(max_length=100, description="經度") latitude = fields.CharField(max_length=100, description="緯度") group_id = fields.IntField(description="學群") address = fields.CharField(max_length=128,description="地址") update_time = fields.DatetimeField(description="更新時間") class Group_name(Model): id = fields.IntField(pk=True) group_name = fields.CharField(max_length=45, description="學群名稱") class Class_name(Model): id = fields.IntField(pk=True) name = fields.CharField(max_length=45, description="課程名稱") school_id = fields.IntField(description="學校ID") category = fields.CharField(max_length=45, description="分類") introduction = fields.TextField(description="簡介") organizer = fields.CharField(max_length=45, description="主辦單位") cover_img = fields.CharField(max_length=255, description="封面圖片") class Class_list(Model): id = fields.IntField(pk=True) name_id = fields.IntField(description="課程名稱ID") event = fields.CharField(max_length=45, description="場次") start_time = fields.DatetimeField(description="開始時間") end_time = fields.DatetimeField(description="結束時間") contact = fields.CharField(max_length=255, description="聯絡方式") lecturer = fields.CharField(max_length=255, description="講師") location = fields.CharField(max_length=255, description="地點詳情") content = fields.TextField(description="內容") URL = fields.TextField(description="連結網址") people = fields.CharField(max_length=255, description="對象") fee_method = fields.CharField(max_length=255, description="收費方式") registration_way = fields.CharField(max_length=255, description="報名方式") remark = fields.TextField(description="備註") class Class_detail(Model): id = fields.IntField(pk=True) class_list_id = fields.IntField(description="課程場次ID") start_time = fields.DatetimeField(description="開始時間") end_time = fields.DatetimeField(description="結束時間") sessions = fields.IntField(description="堂數") content = fields.TextField(description="內容") class Registration(Model): id = fields.IntField(pk=True) class_id = fields.IntField(description="課程ID") user_id = fields.IntField(description="使用者ID") reg_confirm = fields.CharField(max_length=255, description="報名確認(1:報名成功 0:單純報名)") is_del = fields.CharField(max_length=255, description="是否取消(1:yes ,0:no)") create_time = fields.DatetimeField(description="創建時間") class News(Model): id = fields.IntField(pk=True) title = fields.CharField(max_length=200, description="標題") category = fields.CharField(max_length=45, description="類別") create_time = fields.DatetimeField(description="發布時間") click_time = fields.IntField(description="點擊次數") content = fields.TextField(description="內容") files = fields.TextField(description="附加檔案") URL = fields.TextField(description="外部連結") tags = fields.TextField(description="標籤") class Favorite_course(Model): id = fields.IntField(pk=True) user_id = fields.IntField(description="使用者ID") class_event_id = fields.IntField(description="課程場次ID") time_stemp = fields.DatetimeField(description="時間") class Article_list(Model): id = fields.IntField(pk=True) title = fields.CharField(max_length=45, description="標題") school_id = fields.IntField(description="學校ID") group_id = fields.IntField(description="學群") create_user_id = fields.IntField(description="創建使用者ID") create_time = fields.DatetimeField(description="創建時間") latest_update_user_id = fields.IntField(description="最新更新使用者ID") latest_update_time = fields.DatetimeField(description="最新更新時間") tags = fields.TextField(description="標籤") category = fields.CharField(max_length=45, description="類別") depiction = fields.TextField(description="文章描述") cover_img = fields.TextField( description="封面圖片") vedio_url = fields.TextField( description="影片連結") click_time = fields.IntField(description="點擊次數") content = fields.TextField(description="內容") is_del = fields.IntField(description="是否刪除")