// tslint:disable
// Autogenerated file
import {
    BaseModel,
    CmfField, CmfM2MField, CmfRelationField, CmfBackrefField,
    CmfBoolField, CmfDateTimeRangeField, CmfIntField, CmfStrField, CmfTextField,
    CmfMarkdownField, CmfMarkupField, CmfDateTimeField, CmfJSONField, CmfChoiceField, CmfUrlField, CmfPhoneField, CmfBigIntField,
} from 'modules/api/angular/cmf-rpc-common';

{#- name, call, length, caller - нельзя использовать как имена статических свойств классов #}
{%- macro escape_static_name(name) -%}
    {{ name+'_' if name in ('name', 'call', 'length', 'caller') else name }}
{%- endmacro %}

{% for model in models_list if model.class_name != 'BaseModel' -%}
declare class {{ model.class_name }} extends BaseModel {}
{% endfor %}

{# TODO создавать уникальные классы полей и переиспользовать в разных моделях, чтобы бандле был меньше #}
export const fields_index = {
{% for field_hash, field_cls in fields_index.items() %}
"{{ field_hash }}": class extends {{ ts_field_class(field_cls) }} {
{#- Пока статик не используется, уберём - файл меньне будет #}
{#-        {%- for meta_name, meta_value in model.ui_meta.fields[field_cls.class_name].items() %}#}
{#-        static {{ meta_name }} = {{ meta_value | tojson }};#}
{#-        {%- endfor %}#}
{%- for meta_name, meta_value in strip_meta(field_cls).items() if meta_name != class_name %}
{{ meta_name }} = {{ meta_value | tojson }};
{%- endfor %}
},
{% endfor %}
}
