Documentation ¶
Index ¶
- Variables
- type AuthResponse
- type Car
- type Driver
- type EditUser
- type EditWaybill
- type Login
- type NewCar
- type NewDriver
- type NewUser
- type NewWaybill
- type PeriodFilter
- type RefreshToken
- type Role
- type TableFilter
- type Token
- type UpdateCar
- type UpdateDriver
- type UpdateUser
- type UpdateWaybill
- type User
- type Waybill
Constants ¶
This section is empty.
Variables ¶
View Source
var AllRole = []Role{ RoleAdmin, RoleMechanic, RoleDriver, }
Functions ¶
This section is empty.
Types ¶
type AuthResponse ¶
Результат проверки Access Token и пользователь, для которого он был создан.
type Car ¶
type Car struct { // Уникальный идентификатор. ID string `json:"id" gorm:"type:uuid;size:255;uniqueIndex;not null;default:gen_random_uuid()"` // Автомобиль. Brand string `json:"brand" gorm:"size:255;not null;"` // Гос. номер автомобиля. Number string `json:"number" gorm:"size:15;"` // Вид топлива. Fuel string `json:"fuel" gorm:"size:15;"` // Пробег. Mileage float64 `json:"mileage" gorm:"type:integer;not null;"` // Норма расхода. FuelConsumption float64 `json:"fuelConsumption;not null;"` // Остаток топлива. FuelRemaining float64 `json:"fuelRemaining;not null;"` // Дата создания машины. CreatedAt time.Time `json:"createdAt"` // Дата последнего обновления данных машины. UpdatedAt time.Time `json:"updatedAt"` // Soft-delete, дата удаления из БД. DeletedAt gorm.DeletedAt }
Машина.
type Driver ¶
type Driver struct { // Уникальный идентификатор ID string `json:"id" gorm:"type:uuid;primaryKey;size:255;uniqueIndex;not null;default:gen_random_uuid()"` // Имя водителя. FirstName string `json:"firstName" gorm:"size:255;not null"` // Фамилия водителя. SecondName string `json:"secondName" gorm:"size:255;not null"` // Отчество водителя. Patronymic *string `json:"patronymic" gorm:"size:255;"` // Есть ли сейчас открытый путевой лист или нет. IsActive bool `json:"isActive" gorm:"not null;default:false"` // Дата создания водителя. CreatedAt time.Time `json:"createdAt"` // Дата последнего обновления данных водителя. UpdatedAt time.Time `json:"updatedAt"` // Soft-delete, дата удаления из БД. DeletedAt gorm.DeletedAt }
Водитель.
type EditWaybill ¶
type EditWaybill struct { // Идентификатор пользователя. UserID *string `json:"userID"` // Идентификатор водителя. DriverID *string `json:"driverID"` // Идентификатор машины. CarID *string `json:"carID"` // Дата и время создания путевого листа. DateStart *time.Time `json:"dateStart"` // Дата и время закрытия путевого листа. DateEnd *time.Time `json:"dateEnd"` // Показания спидометра при выезде. MileageStart *float64 `json:"mileageStart"` // Показания спидометра при заезде. MileageEnd *float64 `json:"mileageEnd"` // Заправлено топлива. FuelFill *float64 `json:"fuelFill"` // Расход топлива по факту FuelConsumptionFact *float64 `json:"fuelConsumptionFact"` // Остаток топлива при выезде. FuelRemainingStart *float64 `json:"fuelRemainingStart"` // Остаток топлива при заезде. FuelRemainingEnd *float64 `json:"fuelRemainingEnd"` // Возможность редактировать путевой лист. IsActive *bool `json:"isActive"` }
Редактирование путевого листа. Только для механика.
type Login ¶
type Login struct { // Почта пользователя. Email string `json:"email"` // Пароль пользователя. Password string `json:"password"` // TOTP пароль Totp string `json:"totp"` }
Вход в сервис обработки путевых листов.
type NewCar ¶
type NewCar struct { // Название машины (бренд и модель). Brand string `json:"brand"` // Гос. номер машины. Number string `json:"number"` // Тип топлива для заправки. Fuel string `json:"fuel"` // Текущий пробег машины. Mileage float64 `json:"mileage"` // Текущий остаток топлива. FuelRemaining float64 `json:"fuelRemaining"` // Норма расхода топлива. FuelConsumption float64 `json:"fuelConsumption"` }
Создать новую машину.
type NewDriver ¶
type NewDriver struct { // Имя водителя. FirstName string `json:"firstName"` // Фамилия водителя. SecondName string `json:"secondName"` // Отчество водителя. Patronymic *string `json:"patronymic"` }
Создание нового водителя.
type NewUser ¶
type NewUser struct { // Почта пользователя. Почта не должна повторяться. Email string `json:"email"` // Роль пользователя в сервисе. Role *Role `json:"role"` }
Создание нового пользователя. Только администратор
type NewWaybill ¶
type NewWaybill struct { // Идентификатор водителя. DriverID string `json:"driverID"` // Идентификатор машины. CarID string `json:"carID"` // Остаток топлива при выезде. FuelRemaining float64 `json:"fuelRemaining"` // Дата и время создания путевого листа. DateStart *time.Time `json:"dateStart"` }
Создание нового путевого листа.
type PeriodFilter ¶
type RefreshToken ¶
type RefreshToken struct {
Response string `json:"response"`
}
Refresh Token для получения нового Access Token и Refresh Token.
type TableFilter ¶
type TableFilter struct { Period *PeriodFilter `json:"period"` Cars []string `json:"cars"` FuelType string `json:"fuelType"` }
type Token ¶
type Token struct { AccessToken string `json:"accessToken"` AccessExpiredAt string `json:"accessExpiredAt"` RefreshToken string `json:"refreshToken"` RefreshExpiredAt string `json:"refreshExpiredAt"` }
Сгенерированный сервером Access Token и Refresh Token для обновления.
type UpdateCar ¶
type UpdateCar struct { // Название машины (бренд и модель). Brand *string `json:"brand"` // Гос. номер машины. Number *string `json:"number"` // Топливо для заправки. Fuel *string `json:"fuel"` // Текущий пробега машины. Mileage *float64 `json:"mileage"` // Текущий остаток топлива. FuelRemaining *float64 `json:"fuelRemaining"` // Норма расхода топлива. FuelConsumption *float64 `json:"fuelConsumption"` }
Обновление данных машины.
type UpdateDriver ¶
type UpdateDriver struct { // Имя водителя. FirstName *string `json:"firstName"` // Фамилия водителя. SecondName *string `json:"secondName"` // Отчество водителя. Patronymic *string `json:"patronymic"` // Есть открытый путевой лист или нет. IsActive *bool `json:"isActive"` }
Обновление данных водителя.
type UpdateUser ¶
type UpdateUser struct { // Почта пользователя. Email *string `json:"email"` // Пароль пользователя. Должен быть не менее 10 символов. Password *string `json:"password"` }
Обновление данных пользователя.
type UpdateWaybill ¶
type UpdateWaybill struct { // Заправлено топлива. FuelFill float64 `json:"fuelFill"` // Показания спидометра при заезде. MileageEnd float64 `json:"mileageEnd"` // Расход топлива по факту FuelConsumptionFact float64 `json:"fuelConsumptionFact"` // Дата и время закрытия путевого листа. DateEnd *time.Time `json:"dateEnd"` }
Обновление существующего путевого листа водителем.
type User ¶
type User struct { // Идентификатор пользователя. ID string `json:"id" gorm:"type:uuid;size:255;uniqueIndex;not null;default:gen_random_uuid()"` // Почта пользователя. Email string `json:"email" gorm:"size:255;uniqueIndex;not null"` // Пароль Password string `json:"-" gorm:"size:255;not null"` // JWT Refresh Token RefreshToken string `json:"-" gorm:"size:255;not null"` // 2fa secret Secret string `json:"-" gorm:"size:255;not null"` // Роль в сервисе. Role Role `json:"role" gorm:"size:20;not null"` // Дата создания пользователя. CreatedAt time.Time `json:"createdAt"` // Дата последнего обновления данных пользователя. UpdatedAt time.Time `json:"updatedAt"` // Soft-delete, дата удаления из БД. DeletedAt gorm.DeletedAt }
Пользователь.
func (*User) CompareUserPassword ¶
func (*User) HashPassword ¶
type Waybill ¶
type Waybill struct { // Идентификатор путевого листа. ID string `json:"id" gorm:"type:uuid;primaryKey;size:255;uniqueIndex;not null;default:gen_random_uuid()"` // Идентификатор пользователя. UserID string `json:"userID" gorm:"type:uuid;primaryKey;size:255;not null;"` // Идентификатор водителя. DriverID string `json:"driverID" gorm:"type:uuid;primaryKey;size:255;not null;"` // Идентификатор машины. CarID string `json:"carID" gorm:"type:uuid;primaryKey;size:255;not null;"` // Дата и время создания путевого листа. DateStart time.Time `json:"dateStart" gorm:"not null;"` // Дата и время закрытия путевого листа. DateEnd time.Time `json:"dateEnd"` // Показания спидометра при выезде. MileageStart float64 `json:"mileageStart" gorm:"type:integer;not null;"` // Показания спидометра при заезде. MileageEnd *float64 `json:"mileageEnd" gorm:"type:integer;"` // Заправлено топлива. FuelFill *float64 `json:"fuelFill"` // Расход топлива по факту FuelConsumptionFact float64 `json:"fuelConsumptionFact"` // Остаток топлива при выезде. FuelRemainingStart float64 `json:"fuelRemainingStart"` // Остаток топлива при заезде. FuelRemainingEnd *float64 `json:"fuelRemainingEnd"` // Возможность редактировать путевой лист. IsActive bool `json:"isActive" gorm:"not null;default:false"` // Водитель, к которому относится путевой лист. Driver *Driver `json:"driver"` // Пользователь, создавший путевой лист. User *User `json:"user"` // Машина. Car *Car `json:"car"` // Дата создания путевого листа. CreatedAt time.Time `json:"createdAt"` // Дата последнего обновления данных в путевом листе. UpdatedAt time.Time `json:"updatedAt"` // Soft-delete, дата удаления из БД. DeletedAt gorm.DeletedAt }
Click to show internal directories.
Click to hide internal directories.