52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package dto
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"quyun/v2/app/requests"
|
|
"quyun/v2/database/models"
|
|
"quyun/v2/pkg/consts"
|
|
)
|
|
|
|
type TenantFilter struct {
|
|
requests.Pagination
|
|
requests.SortQueryFilter
|
|
|
|
Name *string `json:"name,omitempty" query:"name"`
|
|
Status *consts.TenantStatus `json:"status,omitempty" query:"status"`
|
|
}
|
|
|
|
type TenantItem struct {
|
|
*models.Tenant
|
|
|
|
UserCount int64 `json:"user_count"`
|
|
UserBalance int64 `json:"user_balance"`
|
|
StatusDescription string `json:"status_description"`
|
|
}
|
|
|
|
type TenantCreateForm struct {
|
|
Code string `json:"code" validate:"required,max=64"`
|
|
Name string `json:"name" validate:"required,max=128"`
|
|
AdminUserID int64 `json:"admin_user_id" validate:"required,gt=0"`
|
|
// Duration 租户有效期(天),从“创建时刻”起算;与续期接口保持一致。
|
|
Duration int `json:"duration" validate:"required,oneof=7 30 90 180 365"`
|
|
}
|
|
|
|
type TenantExpireUpdateForm struct {
|
|
Duration int `json:"duration" validate:"required,oneof=7 30 90 180 365"`
|
|
}
|
|
|
|
// Duration
|
|
func (form *TenantExpireUpdateForm) ParseDuration() (time.Duration, error) {
|
|
duration := time.Duration(form.Duration) * 24 * time.Hour
|
|
if duration == 0 {
|
|
return 0, errors.New("invalid parsed duration")
|
|
}
|
|
return duration, nil
|
|
}
|
|
|
|
type TenantStatusUpdateForm struct {
|
|
Status consts.TenantStatus `json:"status" validate:"required,oneof=normal disabled"`
|
|
}
|