package models import ( "time" ) // OaSchedule OA日程(日历待办): yz_backend_oa_schedule // 日程按租户 tid + 用户 user_id 双重隔离,供 backend 日程管理页面的 // 月历视图与待办列表读写。schedule_date/start_time/end_time 均以 // "YYYY-MM-DD"、"HH:mm" 字符串存取,前端无需再做时区换算。 // // 顺延相关字段(source_id/carry_over/carry_count/carry_to_date): // 当天做不完的日程可"顺延到下一天"——原日程标记完成并置 carry_over=1, // 同时在目标日期生成一条待办,source_id 指向整条顺延链的源头日程, // carry_count 记录累计顺延次数,便于追溯一个任务跨了多少天。 type OaSchedule struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Tid int `orm:"column(tid)" json:"tid"` UserID uint64 `orm:"column(user_id)" json:"user_id"` UserName string `orm:"column(user_name);size(100);default()" json:"user_name"` Title string `orm:"column(title);size(255)" json:"title"` Content string `orm:"column(content);type(text);null" json:"content"` // Images 相关图片(截图/照片),存 JSON 数组:[{"id":1,"url":"","name":""}] Images string `orm:"column(images);type(text);null" json:"images"` ScheduleDate string `orm:"column(schedule_date);type(date)" json:"schedule_date"` StartTime string `orm:"column(start_time);size(8);default()" json:"start_time"` EndTime string `orm:"column(end_time);size(8);default()" json:"end_time"` AllDay int8 `orm:"column(all_day);default(1)" json:"all_day"` Color string `orm:"column(color);size(20);default(#409EFF)" json:"color"` Priority int8 `orm:"column(priority);default(0)" json:"priority"` Status int8 `orm:"column(status);default(0)" json:"status"` FinishTime *time.Time `orm:"column(finish_time);type(datetime);null" json:"finish_time"` SourceID uint64 `orm:"column(source_id);default(0)" json:"source_id"` CarryOver int8 `orm:"column(carry_over);default(0)" json:"carry_over"` CarryCount int `orm:"column(carry_count);default(0)" json:"carry_count"` CarryToDate string `orm:"column(carry_to_date);size(10);default()" json:"carry_to_date"` // ReminderID 绑定到提醒工具的提醒任务(yz_backend_schedule.id),0 表示未开启提醒。 // 用于把 OA 日程与提醒任务关联,从而在日程详情回显提醒状态(如"提醒已关闭")。 ReminderID uint64 `orm:"column(reminder_id);default(0)" json:"reminder_id"` IsDeleted int8 `orm:"column(is_deleted);default(0)" json:"is_deleted"` CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);auto_now;type(datetime);null" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"` } func (m *OaSchedule) TableName() string { return "yz_backend_oa_schedule" }