/*
 * @description:附件相关
 * @Author: LanJianRong
 * @Date: 2020-12-04 16:00:19
 * @FilePath: \construction_management\web\viewmodels\annex.go
 */
package viewmodels

import (
	"time"

	validation "github.com/go-ozzo/ozzo-validation/v3"
)

type Annex struct {
	Id         string    `form:"id" json:"id"`
	DataType   string    `form:"dataType" json:"dataType"`
	DataId     string    `form:"dataId" json:"dataId"`
	Name       string    `form:"name" json:"name"`
	OssUrl     string    `form:"OSSUrl" json:"OSSUrl"`
	AccountId  string    `form:"accoundId" json:"accoundId"`
	CreateTime time.Time `form:"createTime" json:"createTime"`
	UpdateTime time.Time `form:"updateTime" json:"updateTime"`
	PageNo     int       `from:"pageNo" json:"pageNo"`
	PageSize   int       `from:"pageSize" json:"pageSize"`
}

type AnnexList struct {
	FileName   string    `form:"filename" json:"filename"`
	FilePath   string    `form:"filepath" json:"filepath"`
	CreateTime time.Time `form:"createTime" json:"createTime"`
}

type AnnexListView struct {
	Id          string    `from:"id" json:"id"`
	FileName    string    `from:"filename" json:"filename"`
	FilePath    string    `from:"filepath" json:"filepath"`
	AccountName string    `from:"accountName" json:"accountName"`
	AccountId   string    `from:"account_id" json:"acountId"`
	CreateTime  time.Time `from:"create_time" json:"createTime"`
}

type AnnexCreate struct {
	DataType int         `form:"dataType" json:"dataType"`
	DataId   string      `form:"dataId" json:"dataId"`
	FileList []AnnexList `form:"fileList" json:"fileList"`
}

func (l AnnexCreate) ValidateCreate() error {
	return validation.ValidateStruct(&l,
		validation.Field(&l.DataType, validation.Required.Error("存储类型不能为空")),
		validation.Field(&l.DataId, validation.Required.Error("存储ID不能为空")),
		validation.Field(&l.FileList, validation.Required.Error("附件不能为空")),
	)
}

func (l Annex) Validate() error {
	return validation.ValidateStruct(&l,
		validation.Field(&l.DataType, validation.Required.Error("存储类型不能为空")),
		validation.Field(&l.DataId, validation.Required.Error("存储ID不能为空")),
		validation.Field(&l.AccountId, validation.Required.Error("账号ID不能为空")),
		validation.Field(&l.PageNo, validation.Required.Error("页码不能为空")),
		validation.Field(&l.PageSize, validation.Required.Error("页数不能为空")),
	)
}

func (l Annex) ValidateGet() error {
	return validation.ValidateStruct(&l,
		validation.Field(&l.DataType, validation.Required.Error("存储类型不能为空")),
		validation.Field(&l.DataId, validation.Required.Error("存储ID不能为空")),
	)
}

// func (l Annex) ValidateAdd() error {
// 	return validation.ValidateStruct(&l,
// 		validation.Field(&l.DataType, validation.Required.Error("存储类型不能为空")),
// 		validation.Field(&l.DataId, validation.Required.Error("存储ID不能为空")),
// 	)
// }
