{{- $proxy := .}}{{$sheet := $proxy.Sheet}}{{$excel := $proxy.Excel}}{{$ctx := $proxy.TitleCtx -}}
{{- $clsName := $proxy.ClassName}}{{$fields := $proxy.GetFields -}}
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was auto-generated by ExcelExporter
//     version 2.0
//     from https://github.com/xuzhuoxi/ExcelExporter 
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

package {{$proxy.Namespace}}

// I{{$clsName}}
// @auth {AUTHOR} {NowTimeStr}
// @description {{$ctx.RangeName}} {{$ctx.RangeType}} {{$ctx.Language}}
type I{{$clsName}} interface {
    {{- range $index, $value := $fields}}
    // Get{{ToUpperCamelCase $value.FieldLangName}}
	// @title {{$value.TitleName}}
    // @remark {{$value.TitleRemark}}
    // @return {{$value.LangType}}
    Get{{ToUpperCamelCase $value.FieldLangName}}() {{$value.LangType}}
    {{- end}}
}

// {{$clsName}}
// @auth {AUTHOR} {NowTimeStr}
// @description {{$ctx.RangeName}} {{$ctx.RangeType}} {{$ctx.Language}}
type {{$clsName}} struct {
    // 以下为属性声明
    {{- range $index, $value := $fields}}{{$define := $value.LangTypeDefine}}
    // @title {{$value.TitleName}}
    {{ToUpperCamelCase $value.FieldLangName}} {{$value.LangType}} `json:"{{$value.GetFileKey "json"}}" db:"{{$value.GetFileKey "sql"}}"`
    {{- end}}
}

// 接口实现 -----------------
{{range $index, $value := $fields}}
// Get{{ToUpperCamelCase $value.FieldLangName}}
// @title {{$value.TitleName}}
// @remark {{$value.TitleRemark}}
// @return {{$value.LangType}}
func (o *{{$clsName}}) Get{{ToUpperCamelCase $value.FieldLangName}}() {{$value.LangType}} {
	return o.{{ToUpperCamelCase $value.FieldLangName}}
}
{{- end}}

// 解释接口实现

// FromJsonOverride
// Json数据解释
func (o *{{$clsName}}) FromJsonOverride(proxy IJsonReaderProxy) {
	// 以下为从 Json数据代理 中解释出字段数据
    {{- range $index, $value := $fields}}{{$define := $value.LangTypeDefine}}
    o.{{ToUpperCamelCase $value.FieldLangName}} = proxy.{{$define.GetGetOperate "json"}}("{{$value.GetFileKey "json"}}")
    {{- end}}
}

// FromYamlOverride
// Yaml数据解释
func (o *{{$clsName}}) FromYamlOverride(proxy IYamlReaderProxy) {
	//以下为从 Yaml数据代理 中解释出字段数据
    {{- range $index, $value := $fields}}{{$define := $value.LangTypeDefine}}
    //o.{{ToUpperCamelCase $value.FieldLangName}} = proxy.{{$define.GetGetOperate "yaml"}}("{{$value.GetFileKey "yaml"}}")
    {{- end}}
}

// FromBinaryOverride
// 二进制数据解释
func (o *{{$clsName}}) FromBinaryOverride(proxy IBinaryReaderProxy) {
	//以下为从 二进制数据代理 中解释出字段数据
    {{- range $index, $value := $fields}}{{$define := $value.LangTypeDefine}}
    o.{{ToUpperCamelCase $value.FieldLangName}} = proxy.{{$define.GetGetOperate "bin"}}()
    {{- end}}
}