syntax = "v1"

info (
	title: "贴图库服务"// TODO: add title
	desc: // TODO: add description
	author: ""
	email: ""
)

import "basic.api"

service map-library {
	//获取贴图库列表
	@handler GetMapLibraryListHandler
	get /api/map-library/list (request) returns (response);
	//保存贴图信息
	@handler SaveMapLibraryHandler
	post /api/map-library/save (request) returns (response);
}

//获取贴图库列表
type GetMapLibraryListRsp {
	Mid   int64              `json:"mid"`
	Ctime string             `json:"ctime"`
	Tag   *MapLibraryListTag `json:"tag"`
	Info  interface{}        `json:"info"`
}
type MapLibraryListTag {
	Id    int64  `json:"id"`
	Title string `json:"title"`
}

//保存贴图信息
type SaveMapLibraryData {
	Mid   string `json:"mid"`
	Tid   string `json:"tid"`
	Ctime string `json:"ctime"`
	Tag   Tag    `json:"tag,optional"`
	Info  Info   `json:"info,optional"`
}

type Tag {
	Id    int64  `json:"id,optional"`
	Title string `json:"title,optional"`
}
type Info {
	Id            string           `json:"id,optional"`
	Tag           string           `json:"tag,optional"`
	Title         string           `json:"title,optional"`
	Type          string           `json:"type,optional"`
	Text          string           `json:"text,optional"`
	Fill          string           `json:"fill,optional"`
	FontSize      int64            `json:"fontSize,optional"`
	FontFamily    string           `json:"fontFamily,optional"`
	IfBr          bool             `json:"ifBr,optional"`
	IfShow        bool             `json:"ifShow,optional"`
	IfGroup       bool             `json:"ifGroup,optional"`
	MaxNum        int64            `json:"maxNum,optional"`
	Rotation      int64            `json:"rotation,optional"`
	Align         string           `json:"align,optional"`
	VerticalAlign string           `json:"verticalAlign,optional"`
	Material      string           `json:"material,optional"`
	Width         float64          `json:"width,optional"`
	Height        float64          `json:"height,optional"`
	X             float64          `json:"x,optional"`
	Y             float64          `json:"Y,optional"`
	Opacity       float64          `json:"opacity,optional"`
	OptionalColor []*OptionalColor `json:"optionalColor,optional"`
	ZIndex        int64            `json:"zIndex,optional"`
	SvgPath       string           `json:"svgPath,optional"`
	Follow        Follow           `json:"follow,optional"`
	Group         []*Group         `json:"group,optional"`
	CameraStand   CameraStand      `json:"cameraStand,optional"`
}
type Group {
	Tag    string `json:"tag,optional"`
	Text   string `json:"text,optional"`
	Title  string `json:"title,optional"`
	IfBr   bool   `json:"ifBr,optional"`
	IfShow bool   `json:"ifShow,optional"`
	MaxNum int64  `json:"maxNum,optional"`
}
type OptionalColor {
	OptionalColor string `json:"color,optional"`
	Name          string `json:"name,optional"`
	Default       bool   `json:"default,optional"`
}
type Follow {
	Fill    string `json:"fill,optional"`
	IfShow  string `json:"ifShow,optional"`
	Content string `json:"content,optional"`
}
type CameraStand {
	X int64 `json:"x,optional"`
	Y int64 `json:"y,optional"`
	Z int64 `json:"z,optional"`
}