# Model Decorators
Decorators that will allow for classes to be built as models for [mongoose][mongoose-url] and also be used within client side frameworks like [Angular 2][angular2-url] to build out custom elements.

## Example
```typescript
import { Field, FieldArray, Model, Method, StaticMethod } from "@add-io/model-decorators";

@Model("Example")
export class Example {

    @Field({ required: true })
    name: string;

    @Field()
    description: string;

    @Field({ ref: "ExampleRef" })
    example: ExampleRef;

    @FieldArray(String, { required: true })
    items: string[];

    @FieldArray(ExampleRef, { ref: "ExampleRef" })
    examples: ExampleRef[];

    @Method()
    save() {
        // Do save method stuff...
    }

    @StaticMethod()
    static loadExamples() {
        // Load examples from the database...
    }
}

@Model("ExampleRef")
export class ExampleRef {

    @Field({ required: true })
    name: string;
}
```

## License
This library is under the [MIT License][mit-url]

[mongoose-url]: http://mongoosejs.com
[angular2-url]: https://angular.io
[mit-url]: http://opensource.org/licenses/MIT