###
generated by base-domain generator
###

BaseModel = require('base-domain').BaseModel

###*
base model class of <%= @model  %>


@class <%= @Model %>

@extends BaseModel
###
class <%=@Model%> extends BaseModel

    ###*
    property types
    key:   property name
    value: type

    @property properties
    @static
    @protected
    @type Object
    ###
    @properties:
        name      : @TYPES.STRING
    ### examples
        age         : @TYPES.NUMBER
        confirmed   : @TYPES.BOOLEAN
        confirmedAt : @TYPES.DATE
        team        : @TYPES.MODEL 'team'
        extraTeam   : @TYPES.MODEL 'team', 'exTeamId'
        hobbies     : @TYPES.MODEL_LIST 'hobby'
        newHobbies  : @TYPES.MODEL_LIST 'hobby', 'new-hobby-collection'
        traits      : @TYPES.MODEL_DICT 'trait'
        traitsByType: @TYPES.MODEL_DICT 'trait', 'trait-type-dic'
        otherInfo   : @TYPES.OBJECT
        createdAt   : @TYPES.CREATED_AT
        updatedAt   : @TYPES.UPDATED_AT
        temporary   : @TYPES.TMP # temporary prop, removed in toPlainObject()
        tmpObj      : @TYPES.TMP 'OBJECT'
    ###
module.exports = <%=@Model %>
