2023-02-22 15:22:50 +03:00
|
|
|
|
package database
|
|
|
|
|
|
2023-03-07 11:09:20 +03:00
|
|
|
|
import "time"
|
|
|
|
|
|
2023-08-03 20:52:18 +03:00
|
|
|
|
// Пользователь системы (задел под сайт)
|
2023-02-22 15:22:50 +03:00
|
|
|
|
type User struct {
|
|
|
|
|
L9Id int64 `xorm:"pk"`
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-03 10:27:36 +03:00
|
|
|
|
type Position string
|
|
|
|
|
|
|
|
|
|
const (
|
2023-08-12 11:52:51 +03:00
|
|
|
|
NotStarted Position = "not_started" // Только начал диалог с ботом
|
|
|
|
|
Ready Position = "ready" // Готов к дальнейшим действиям
|
|
|
|
|
Add Position = "add" // Подключает личное расписание
|
|
|
|
|
Set Position = "set" // Устанавливает время
|
2023-08-12 12:53:13 +03:00
|
|
|
|
Delete Position = "del" // Отключается от группы
|
2023-08-03 10:27:36 +03:00
|
|
|
|
)
|
|
|
|
|
|
2023-08-03 20:52:18 +03:00
|
|
|
|
// Пользователь Telegram
|
2023-02-22 15:22:50 +03:00
|
|
|
|
type TgUser struct {
|
|
|
|
|
L9Id int64 `xorm:"pk"`
|
|
|
|
|
TgId int64
|
|
|
|
|
Name string
|
2023-08-03 10:27:36 +03:00
|
|
|
|
PosTag Position
|
2023-02-22 15:22:50 +03:00
|
|
|
|
}
|
2023-03-07 11:09:20 +03:00
|
|
|
|
|
2023-08-03 20:52:18 +03:00
|
|
|
|
// Подключённое к пользователю расписание
|
2023-03-08 13:03:27 +03:00
|
|
|
|
type ShedulesInUser struct {
|
2023-03-13 18:23:30 +03:00
|
|
|
|
UID int64 `xorm:"pk autoincr"` // Не забывать про автоинкремент!!!
|
2023-03-08 13:03:27 +03:00
|
|
|
|
L9Id int64
|
2023-08-03 20:52:18 +03:00
|
|
|
|
IsGroup bool
|
2023-03-08 13:03:27 +03:00
|
|
|
|
SheduleId int64
|
2023-08-10 21:59:58 +03:00
|
|
|
|
Subgroup int64
|
|
|
|
|
NextNote bool
|
2023-08-11 17:46:52 +03:00
|
|
|
|
NextDay bool
|
|
|
|
|
NextWeek bool
|
2023-08-12 10:28:35 +03:00
|
|
|
|
First bool
|
|
|
|
|
FirstTime int `xorm:"default 45"`
|
2023-08-12 12:32:34 +03:00
|
|
|
|
Military bool
|
2023-03-08 13:03:27 +03:00
|
|
|
|
}
|
|
|
|
|
|
2023-08-03 20:52:18 +03:00
|
|
|
|
// Учебная группа
|
2023-03-07 11:09:20 +03:00
|
|
|
|
type Group struct {
|
2023-08-02 07:42:07 +03:00
|
|
|
|
GroupId int64 `xorm:"pk"`
|
|
|
|
|
GroupName string // Полный номер группы
|
|
|
|
|
SpecName string // Шифр и название специальности
|
2023-08-03 20:52:18 +03:00
|
|
|
|
LastUpd time.Time
|
2023-08-13 15:13:58 +03:00
|
|
|
|
LastCheck time.Time
|
2023-03-07 19:27:14 +03:00
|
|
|
|
}
|
|
|
|
|
|
2023-08-03 20:52:18 +03:00
|
|
|
|
// Преподаватель
|
2023-03-07 19:27:14 +03:00
|
|
|
|
type Teacher struct {
|
2023-08-02 07:42:07 +03:00
|
|
|
|
TeacherId int64 `xorm:"pk"`
|
|
|
|
|
FirstName string // Фамилия
|
|
|
|
|
LastName string // Имя, отчество и прочие окончания
|
2023-08-03 12:13:09 +03:00
|
|
|
|
ShortName string // Инициалы
|
2023-08-02 07:42:07 +03:00
|
|
|
|
SpecName string // Место работы
|
2023-08-03 20:52:18 +03:00
|
|
|
|
LastUpd time.Time
|
2023-08-13 15:13:58 +03:00
|
|
|
|
LastCheck time.Time
|
2023-03-07 11:09:20 +03:00
|
|
|
|
}
|
|
|
|
|
|
2023-08-03 20:52:18 +03:00
|
|
|
|
// Занятие
|
2023-03-07 11:09:20 +03:00
|
|
|
|
type Lesson struct {
|
2023-03-25 13:18:45 +03:00
|
|
|
|
LessonId int64 `xorm:"pk autoincr"`
|
|
|
|
|
NumInShedule int
|
|
|
|
|
Type string
|
|
|
|
|
Name string
|
|
|
|
|
GroupId int64
|
|
|
|
|
Begin time.Time
|
|
|
|
|
End time.Time
|
|
|
|
|
TeacherId int64
|
|
|
|
|
Place string
|
|
|
|
|
Comment string
|
2023-07-31 19:52:42 +03:00
|
|
|
|
SubGroup int64
|
|
|
|
|
Hash string
|
2023-03-07 11:09:20 +03:00
|
|
|
|
}
|
2023-08-08 18:36:33 +03:00
|
|
|
|
|
|
|
|
|
// Файлы, залитые в Telegream
|
|
|
|
|
type File struct {
|
|
|
|
|
Id int64 `xorm:"pk autoincr"`
|
|
|
|
|
FileId string
|
|
|
|
|
TgId int64
|
|
|
|
|
IsPersonal bool
|
|
|
|
|
IsGroup bool
|
|
|
|
|
SheduleId int64
|
|
|
|
|
Week int
|
|
|
|
|
LastUpd time.Time
|
|
|
|
|
}
|
2023-08-11 16:17:22 +03:00
|
|
|
|
|
|
|
|
|
// Самоуничтожающиеся сообщения
|
|
|
|
|
type TempMsg struct {
|
|
|
|
|
ID int64 `xorm:"pk autoincr"`
|
|
|
|
|
TgId int64
|
|
|
|
|
MessageId int
|
|
|
|
|
Destroy time.Time
|
|
|
|
|
}
|