users = {
    'fields': {
        'name': str,
        'email': str,
        'password': str,
        'last_login': int,
        'is_active': bool,
        'image': str,
        'tel': str
    },
    'temp_fields': [
        'groups'
    ],
    'filters': {
        'groups': 'filter_groups'
    },
    'unique_fields': (
        'email',
        'tel'
    ),
    'response_templates':
        {'login': (
            ('id', 'string'),
            ('name', 'string'),
            ('email', 'string'),
            ('tel', 'string'),
            ('is_active', 'boolean'),
            ('get_date_created:date_created', 'integer'),
            ('image', 'string'),
            ('token:token', 'string'),
            ('groups', 'objects', (
                ('id', 'string'),
                ('name', 'string'),
                ('project', 'object', (
                    ('id', 'string'),
                    ('name', 'object', (
                        ('en', 'string'),
                        ('ru', 'string'),
                        ('uk', 'string'),
                    ))
                )),
                ('permissions', 'objects', (
                    ('id', 'string'),
                    ('get_access:access', 'string'),
                )),
                ('g_type', 'string'),
                ('is_owner', 'boolean')
            ))
        ),
            'short': (
                ('id', 'string'),
                ('name', 'string'),
                ('email', 'string'),
                ('tel', 'string'),
                ('is_active', 'boolean'),
                ('get_date_created:date_created', 'integer'),
                ('image', 'string'),
                ('groups', 'objects', (
                    ('id', 'string'),
                    ('name', 'string'),
                    ('project', 'object', (
                        ('id', 'string'),
                        ('name', 'object', (
                            ('en', 'string'),
                            ('ru', 'string'),
                            ('uk', 'string'),
                        ))
                    )),
                    ('permissions', 'objects', (
                        ('id', 'string'),
                        ('get_access:access', 'string'),
                    )),
                    ('g_type', 'string'),
                    ('is_owner', 'boolean')
                ))
            )
        }

}

users_tokens = {
    'fields': {
        'name': str,
        'symbol': str,
        'code': str,
        'rate': int,
        'rates': list,
        'last_update': int,
    },
}

groups = {
    'fields': {
        'users': list,
        'name': str,
        'permissions': list,
        'g_type': str,
        'is_owner': bool,
        'project': str
    },
    'temp_fields': [
        'users'
    ],
    'filters': {
        'users': 'filter_users'
    },
    'response_templates': {
        'short': (
            ('id', 'string'),
            ('name', 'string'),
            ('g_type', 'string'),
            ('is_owner', 'boolean'),
            ('project', 'object', (
                ('id', 'string'),
                ('name', 'object', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),
                ('additional_domains', 'list'),

            )),
            ('permissions', 'objects', (
                ('id', 'string'),
                ('get_access:access', 'string')
            )),
        ),
        'long': (
            ('id', 'string'),
            ('name', 'string'),
            ('g_type', 'string'),
            ('is_owner', 'boolean'),
            ('users', 'objects', (
                ('name', 'string'),
                ('email', 'string'),
                ('is_active', 'boolean'),
                ('image', 'string'),
            )),
            ('project', 'object', (
                ('id', 'string'),
                ('name', 'object', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),

            )),
            ('permissions', 'objects', (
                ('id', 'string'),
                ('get_access:access', 'string')
            )),
        )
    }
}
groups_templates = {
    'fields': {
        'name': str,
        'permissions': list,
        'g_type': str,
    },
}

projects = {
    'unique_fields': [
        'domain'
    ],
    'fields': {
        'name': str,
        'domain': str,
        'additional_domains': list,
        'address': list,
        'logo': object,
        'favicon': object
    },
    'response_templates': {
        'short':
            (
                ('id', 'string'),
                ('domain', 'string'),
                ('additional_domains', 'list'),
                ('address', 'objects', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),
                ('logo', 'string'),
                ('favicon', 'string'),
                ('name', 'object', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),
            )
    }
}
permissions = {
    'response_template': {
        'short': (
            ('id', 'string'),
            ('get_access:access', 'string'),
            ('description', 'string'),)
    }
}

currencies = {
    'fields': {
        'name': str,
        'symbol': str,
        'code': str,
        'rate': int,
        'rates': list,
        'last_update': int,
    },
    'response_template': {
        'short': (
            ('id', 'string'),
            ('name', 'string'),
            ('symbol', 'string'),
            ('code', 'string'),
            ('rate', 'integer'),
            ('rates', 'list'),
            ('get_last_update:last_update', 'float')
        )
    },
    'unique_fields': (
        'code',
    )

}

countries = {
    'fields': {
        'name': str,
        'iso2': str,
        'dial_code': str,
        'priority': int,
        'area_codes': list,
        'currency': str,
    },
    'response_template': {
        'short': (
            ('id', 'string'),
            ('name', 'string'),
            ('iso2', 'string'),
            ('dial_code', 'string'),
            ('priority', 'integer'),
            ('area_codes', 'list'),
            ('currency', 'object', (
                ('name', 'string'),
                ('symbol', 'string'),
                ('code', 'string'),
                ('rate', 'integer'),
                ('rate', 'integer')
            )),
        ),
    },
    'unique_fields': (
        'iso2',
    )
}

cities = {
    'fields': {
        'name': str,
        'country_code': str,
        'default': bool,
        'active': str,
        'lat': int,
        'lng': int,
        'language': object,
        'number_phone': str,
        'exist_store': bool

    },
    'response_templates': {
        'short': (
            ('name', 'string'),
            ('country_code', 'string'),
            ('default', 'boolean'),
            ('active', 'boolean'),
            ('lat', 'integer'),
            ('lng', 'integer'),
            ('number_phone', 'string'),
            ('language', 'object', (
                ('en', 'string'),
                ('ru', 'string'),
                ('uk', 'string'),
            ),),
            ('exist_store', 'boolean'),
        )
    }
}

posts = {
    'fields': {
        'title': dict,
        'author': str,
        'project': object,
        'post_category': str,
        'tags': list,
        'url': str,
        'content': dict,
        'last_update': int,

    },
    'response_templates': {
        'short': (
            ('id', 'string'),
            ('title', 'object', (
                ('en', 'string'),
                ('ru', 'string'),
                ('uk', 'string'),
            ),),
            ('author', 'string',),
            ('post_category', 'string'),
            ('tags', 'list',),
            ('get_date_create:date_create', 'integer'),
            ('get_last_update:last_update', 'integer'),
            ('url', 'string',),
            ('title', 'object', (
                ('en', 'string'),
                ('ru', 'string'),
                ('uk', 'string'),
            ),),),
    },

}

openTime = {
    'fields': {
        'day': int,
        'open_hours': int,
        'open_minutes': int,
        'close_hours': int,
        'close_minutes': int,
        'project': object,
    },
    'response_templates': {
        'short': (
            ('day', 'integer'),
            ('open_hours', 'integer'),
            ('open_minutes', 'integer'),
            ('close_hours', 'integer'),
            ('close_minutes', 'integer'),
        ),
    }
}

sms = {
    'fields': {
        'tel': str,
        'code': str,
        'created': float,
        'expire': float
    },

}

d1acec8e6bd80a5671084615a01d323ec1f082de
<mask token>

users = {'fields': {'name': str, 'email': str, 'password': str,
    'last_login': int, 'is_active': bool, 'image': str, 'tel': str},
    'temp_fields': ['groups'], 'filters': {'groups': 'filter_groups'},
    'unique_fields': ('email', 'tel'), 'response_templates': {'login': ((
    'id', 'string'), ('name', 'string'), ('email', 'string'), ('tel',
    'string'), ('is_active', 'boolean'), ('get_date_created:date_created',
    'integer'), ('image', 'string'), ('token:token', 'string'), ('groups',
    'objects', (('id', 'string'), ('name', 'string'), ('project', 'object',
    (('id', 'string'), ('name', 'object', (('en', 'string'), ('ru',
    'string'), ('uk', 'string'))))), ('permissions', 'objects', (('id',
    'string'), ('get_access:access', 'string'))), ('g_type', 'string'), (
    'is_owner', 'boolean')))), 'short': (('id', 'string'), ('name',
    'string'), ('email', 'string'), ('tel', 'string'), ('is_active',
    'boolean'), ('get_date_created:date_created', 'integer'), ('image',
    'string'), ('groups', 'objects', (('id', 'string'), ('name', 'string'),
    ('project', 'object', (('id', 'string'), ('name', 'object', (('en',
    'string'), ('ru', 'string'), ('uk', 'string'))))), ('permissions',
    'objects', (('id', 'string'), ('get_access:access', 'string'))), (
    'g_type', 'string'), ('is_owner', 'boolean'))))}}
users_tokens = {'fields': {'name': str, 'symbol': str, 'code': str, 'rate':
    int, 'rates': list, 'last_update': int}}
groups = {'fields': {'users': list, 'name': str, 'permissions': list,
    'g_type': str, 'is_owner': bool, 'project': str}, 'temp_fields': [
    'users'], 'filters': {'users': 'filter_users'}, 'response_templates': {
    'short': (('id', 'string'), ('name', 'string'), ('g_type', 'string'), (
    'is_owner', 'boolean'), ('project', 'object', (('id', 'string'), (
    'name', 'object', (('en', 'string'), ('ru', 'string'), ('uk', 'string')
    )), ('additional_domains', 'list'))), ('permissions', 'objects', (('id',
    'string'), ('get_access:access', 'string')))), 'long': (('id', 'string'
    ), ('name', 'string'), ('g_type', 'string'), ('is_owner', 'boolean'), (
    'users', 'objects', (('name', 'string'), ('email', 'string'), (
    'is_active', 'boolean'), ('image', 'string'))), ('project', 'object', (
    ('id', 'string'), ('name', 'object', (('en', 'string'), ('ru', 'string'
    ), ('uk', 'string'))))), ('permissions', 'objects', (('id', 'string'),
    ('get_access:access', 'string'))))}}
groups_templates = {'fields': {'name': str, 'permissions': list, 'g_type': str}
    }
projects = {'unique_fields': ['domain'], 'fields': {'name': str, 'domain':
    str, 'additional_domains': list, 'address': list, 'logo': object,
    'favicon': object}, 'response_templates': {'short': (('id', 'string'),
    ('domain', 'string'), ('additional_domains', 'list'), ('address',
    'objects', (('en', 'string'), ('ru', 'string'), ('uk', 'string'))), (
    'logo', 'string'), ('favicon', 'string'), ('name', 'object', (('en',
    'string'), ('ru', 'string'), ('uk', 'string'))))}}
permissions = {'response_template': {'short': (('id', 'string'), (
    'get_access:access', 'string'), ('description', 'string'))}}
currencies = {'fields': {'name': str, 'symbol': str, 'code': str, 'rate':
    int, 'rates': list, 'last_update': int}, 'response_template': {'short':
    (('id', 'string'), ('name', 'string'), ('symbol', 'string'), ('code',
    'string'), ('rate', 'integer'), ('rates', 'list'), (
    'get_last_update:last_update', 'float'))}, 'unique_fields': ('code',)}
countries = {'fields': {'name': str, 'iso2': str, 'dial_code': str,
    'priority': int, 'area_codes': list, 'currency': str},
    'response_template': {'short': (('id', 'string'), ('name', 'string'), (
    'iso2', 'string'), ('dial_code', 'string'), ('priority', 'integer'), (
    'area_codes', 'list'), ('currency', 'object', (('name', 'string'), (
    'symbol', 'string'), ('code', 'string'), ('rate', 'integer'), ('rate',
    'integer'))))}, 'unique_fields': ('iso2',)}
cities = {'fields': {'name': str, 'country_code': str, 'default': bool,
    'active': str, 'lat': int, 'lng': int, 'language': object,
    'number_phone': str, 'exist_store': bool}, 'response_templates': {
    'short': (('name', 'string'), ('country_code', 'string'), ('default',
    'boolean'), ('active', 'boolean'), ('lat', 'integer'), ('lng',
    'integer'), ('number_phone', 'string'), ('language', 'object', (('en',
    'string'), ('ru', 'string'), ('uk', 'string'))), ('exist_store',
    'boolean'))}}
posts = {'fields': {'title': dict, 'author': str, 'project': object,
    'post_category': str, 'tags': list, 'url': str, 'content': dict,
    'last_update': int}, 'response_templates': {'short': (('id', 'string'),
    ('title', 'object', (('en', 'string'), ('ru', 'string'), ('uk',
    'string'))), ('author', 'string'), ('post_category', 'string'), ('tags',
    'list'), ('get_date_create:date_create', 'integer'), (
    'get_last_update:last_update', 'integer'), ('url', 'string'), ('title',
    'object', (('en', 'string'), ('ru', 'string'), ('uk', 'string'))))}}
openTime = {'fields': {'day': int, 'open_hours': int, 'open_minutes': int,
    'close_hours': int, 'close_minutes': int, 'project': object},
    'response_templates': {'short': (('day', 'integer'), ('open_hours',
    'integer'), ('open_minutes', 'integer'), ('close_hours', 'integer'), (
    'close_minutes', 'integer'))}}
sms = {'fields': {'tel': str, 'code': str, 'created': float, 'expire': float}}

users = {
    'fields': {
        'name': str,
        'email': str,
        'password': str,
        'last_login': int,
        'is_active': bool,
        'image': str,
        'tel': str
    },
    'temp_fields': [
        'groups'
    ],
    'filters': {
        'groups': 'filter_groups'
    },
    'unique_fields': (
        'email',
        'tel'
    ),
    'response_templates':
        {'login': (
            ('id', 'string'),
            ('name', 'string'),
            ('email', 'string'),
            ('tel', 'string'),
            ('is_active', 'boolean'),
            ('get_date_created:date_created', 'integer'),
            ('image', 'string'),
            ('token:token', 'string'),
            ('groups', 'objects', (
                ('id', 'string'),
                ('name', 'string'),
                ('project', 'object', (
                    ('id', 'string'),
                    ('name', 'object', (
                        ('en', 'string'),
                        ('ru', 'string'),
                        ('uk', 'string'),
                    ))
                )),
                ('permissions', 'objects', (
                    ('id', 'string'),
                    ('get_access:access', 'string'),
                )),
                ('g_type', 'string'),
                ('is_owner', 'boolean')
            ))
        ),
            'short': (
                ('id', 'string'),
                ('name', 'string'),
                ('email', 'string'),
                ('tel', 'string'),
                ('is_active', 'boolean'),
                ('get_date_created:date_created', 'integer'),
                ('image', 'string'),
                ('groups', 'objects', (
                    ('id', 'string'),
                    ('name', 'string'),
                    ('project', 'object', (
                        ('id', 'string'),
                        ('name', 'object', (
                            ('en', 'string'),
                            ('ru', 'string'),
                            ('uk', 'string'),
                        ))
                    )),
                    ('permissions', 'objects', (
                        ('id', 'string'),
                        ('get_access:access', 'string'),
                    )),
                    ('g_type', 'string'),
                    ('is_owner', 'boolean')
                ))
            )
        }

}

users_tokens = {
    'fields': {
        'name': str,
        'symbol': str,
        'code': str,
        'rate': int,
        'rates': list,
        'last_update': int,
    },
}

groups = {
    'fields': {
        'users': list,
        'name': str,
        'permissions': list,
        'g_type': str,
        'is_owner': bool,
        'project': str
    },
    'temp_fields': [
        'users'
    ],
    'filters': {
        'users': 'filter_users'
    },
    'response_templates': {
        'short': (
            ('id', 'string'),
            ('name', 'string'),
            ('g_type', 'string'),
            ('is_owner', 'boolean'),
            ('project', 'object', (
                ('id', 'string'),
                ('name', 'object', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),
                ('additional_domains', 'list'),

            )),
            ('permissions', 'objects', (
                ('id', 'string'),
                ('get_access:access', 'string')
            )),
        ),
        'long': (
            ('id', 'string'),
            ('name', 'string'),
            ('g_type', 'string'),
            ('is_owner', 'boolean'),
            ('users', 'objects', (
                ('name', 'string'),
                ('email', 'string'),
                ('is_active', 'boolean'),
                ('image', 'string'),
            )),
            ('project', 'object', (
                ('id', 'string'),
                ('name', 'object', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),

            )),
            ('permissions', 'objects', (
                ('id', 'string'),
                ('get_access:access', 'string')
            )),
        )
    }
}
groups_templates = {
    'fields': {
        'name': str,
        'permissions': list,
        'g_type': str,
    },
}

projects = {
    'unique_fields': [
        'domain'
    ],
    'fields': {
        'name': str,
        'domain': str,
        'additional_domains': list,
        'address': list,
        'logo': object,
        'favicon': object
    },
    'response_templates': {
        'short':
            (
                ('id', 'string'),
                ('domain', 'string'),
                ('additional_domains', 'list'),
                ('address', 'objects', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),
                ('logo', 'string'),
                ('favicon', 'string'),
                ('name', 'object', (
                    ('en', 'string'),
                    ('ru', 'string'),
                    ('uk', 'string'),
                )),
            )
    }
}
permissions = {
    'response_template': {
        'short': (
            ('id', 'string'),
            ('get_access:access', 'string'),
            ('description', 'string'),)
    }
}

currencies = {
    'fields': {
        'name': str,
        'symbol': str,
        'code': str,
        'rate': int,
        'rates': list,
        'last_update': int,
    },
    'response_template': {
        'short': (
            ('id', 'string'),
            ('name', 'string'),
            ('symbol', 'string'),
            ('code', 'string'),
            ('rate', 'integer'),
            ('rates', 'list'),
            ('get_last_update:last_update', 'float')
        )
    },
    'unique_fields': (
        'code',
    )

}

countries = {
    'fields': {
        'name': str,
        'iso2': str,
        'dial_code': str,
        'priority': int,
        'area_codes': list,
        'currency': str,
    },
    'response_template': {
        'short': (
            ('id', 'string'),
            ('name', 'string'),
            ('iso2', 'string'),
            ('dial_code', 'string'),
            ('priority', 'integer'),
            ('area_codes', 'list'),
            ('currency', 'object', (
                ('name', 'string'),
                ('symbol', 'string'),
                ('code', 'string'),
                ('rate', 'integer'),
                ('rate', 'integer')
            )),
        ),
    },
    'unique_fields': (
        'iso2',
    )
}

cities = {
    'fields': {
        'name': str,
        'country_code': str,
        'default': bool,
        'active': str,
        'lat': int,
        'lng': int,
        'language': object,
        'number_phone': str,
        'exist_store': bool

    },
    'response_templates': {
        'short': (
            ('name', 'string'),
            ('country_code', 'string'),
            ('default', 'boolean'),
            ('active', 'boolean'),
            ('lat', 'integer'),
            ('lng', 'integer'),
            ('number_phone', 'string'),
            ('language', 'object', (
                ('en', 'string'),
                ('ru', 'string'),
                ('uk', 'string'),
            ),),
            ('exist_store', 'boolean'),
        )
    }
}

posts = {
    'fields': {
        'title': dict,
        'author': str,
        'project': object,
        'post_category': str,
        'tags': list,
        'url': str,
        'content': dict,
        'last_update': int,

    },
    'response_templates': {
        'short': (
            ('id', 'string'),
            ('title', 'object', (
                ('en', 'string'),
                ('ru', 'string'),
                ('uk', 'string'),
            ),),
            ('author', 'string',),
            ('post_category', 'string'),
            ('tags', 'list',),
            ('get_date_create:date_create', 'integer'),
            ('get_last_update:last_update', 'integer'),
            ('url', 'string',),
            ('title', 'object', (
                ('en', 'string'),
                ('ru', 'string'),
                ('uk', 'string'),
            ),),),
    },

}

openTime = {
    'fields': {
        'day': int,
        'open_hours': int,
        'open_minutes': int,
        'close_hours': int,
        'close_minutes': int,
        'project': object,
    },
    'response_templates': {
        'short': (
            ('day', 'integer'),
            ('open_hours', 'integer'),
            ('open_minutes', 'integer'),
            ('close_hours', 'integer'),
            ('close_minutes', 'integer'),
        ),
    }
}

sms = {
    'fields': {
        'tel': str,
        'code': str,
        'created': float,
        'expire': float
    },

}
