46 lines
1.8 KiB
Go
46 lines
1.8 KiB
Go
package config
|
||
|
||
import (
|
||
"assets/consts/asset"
|
||
)
|
||
|
||
// ServiceAssetConfig 服务资产配置
|
||
type ServiceAssetConfig struct {
|
||
ServiceAssetType consts.ServiceAssetType `json:"serviceAssetType"`
|
||
ServiceAssetArrivalConfig *ServiceAssetArrivalConfig `json:"serviceAssetArrivalConfig"`
|
||
}
|
||
|
||
type ServiceAssetArrivalConfig struct {
|
||
Schedule *ScheduleConfig `json:"schedule,omitempty"` // 排期配置
|
||
Booking *BookingConfig `json:"booking,omitempty"` // 预订配置
|
||
}
|
||
|
||
// ScheduleConfig 排期配置
|
||
type ScheduleConfig struct {
|
||
TimeSlots []*TimeSlot `json:"timeSlots"` // 时间段定义
|
||
Exceptions []*ScheduleException `json:"exceptions,omitempty"` // 例外日期
|
||
}
|
||
|
||
// BookingConfig 预订配置
|
||
type BookingConfig struct {
|
||
MinAdvance int `json:"minAdvance,omitempty"` // 最小提前时间(分钟)
|
||
MinDuration int `json:"minDuration,omitempty"` // 最小预订时长(分钟)
|
||
CancelWindow int `json:"cancelWindow,omitempty"` // 取消窗口(分钟)
|
||
}
|
||
|
||
// TimeSlot 时间段
|
||
type TimeSlot struct {
|
||
DayOfWeek string `bson:"dayOfWeek" json:"dayOfWeek"` // 星期几(1-7)
|
||
StartTime string `bson:"startTime" json:"startTime"` // 开始时间 HH:mm
|
||
EndTime string `bson:"endTime" json:"endTime"` // 结束时间 HH:mm
|
||
Capacity int `bson:"capacity,omitempty" json:"capacity,omitempty"` // 容量限制
|
||
}
|
||
|
||
// ScheduleException 排期例外
|
||
type ScheduleException struct {
|
||
Date string `bson:"date" json:"date"` // 日期 YYYY-MM-DD
|
||
Status int `bson:"status" json:"status"` // 状态,1:可用,0:不可用
|
||
Reason string `bson:"reason,omitempty" json:"reason,omitempty"` // 原因
|
||
DayOfWeek string `bson:"dayOfWeek" json:"dayOfWeek"` // 星期几(1-7)
|
||
}
|