// mark 2 model generic

// {{{vendorExtensions}}} 

{{#vendorExtensions.x-inheritsName}} 
import { {{{vendorExtensions.x-inheritsName}}} } from "../model/{{{vendorExtensions.x-inheritsName}}}";
{{/vendorExtensions.x-inheritsName}}

{{#vendorExtensions.x-inputModel}}
{{#supportsClassValidator}}
import {Matches, validateOrReject, IsInt, Length, MinLength, MaxLength, Min, Max} from "class-validator";
{{/supportsClassValidator}}
{{#supportsRuleValidator}}
import { ValidationRule {{#supportsCustomValidator}}, CustomValidatorMap {{/supportsCustomValidator}}  } from "../api/api";

// 假如下面这一行有错误不要慌张，定义一个让类型错误消失的customValidators即可:
{{#supportsCustomValidator}} 
import * as _customValidators from "{{customValidatorRelativePath}}customValidators";
const customValidators: Partial<CustomValidatorMap> = _customValidators;

{{/supportsCustomValidator}}
{{/supportsRuleValidator}}
{{/vendorExtensions.x-inputModel}}

// not an enum
export {{#vendorExtensions.x-inputModel}} class {{/vendorExtensions.x-inputModel}} {{^vendorExtensions.x-inputModel}} interface {{/vendorExtensions.x-inputModel}} {{classname}}{{#vendorExtensions.x-inheritsName}} extends {{{vendorExtensions.x-inheritsName}}} {{/vendorExtensions.x-inheritsName}} {
{{> ../validator}}
{{#vars}}
{{#description}}
{{/description}}
{{> ../property}}
{{/vars}}
}
{{#hasEnums}}
//export namespace {{classname}} 
{{#vars}}
{{#isEnum}}
export enum {{vendorExtensions.x-enumTypeName}} {
{{#allowableValues}}
	{{#enumVars}}
	{{{name}}} = {{{value}}}{{^-last}},{{/-last}}
	{{/enumVars}}
{{/allowableValues}}
}
{{/isEnum}}
{{/vars}}
{{/hasEnums}}