class Lead(__CreatedUpdated, BaseEntity): model_name = 'lead' model_plural_name = 'leads' schema = _CustomFieldsSchema name = fields.Str() account_id = fields.Int() responsible_user_id = UserIdField('responsible_user') group_id = GroupIdField('group') tags = TagsField() # For some reason it can't be changed using api # (tested with main_contact: {id:..} and changing order of contacts_id) main_contact = EntityField('contact', load_only=True) contacts = EntityField('contact', dump_key='contacts_id', flat_id=True, many=True) company = EntityField('company') pipeline = EntityField('pipeline', only=['id'], unknown='exclude') status_id = fields.Int() is_deleted = fields.Bool(default=False) closed_at = TimestampField(zero_as_none=True, allow_none=True) closest_task_at = TimestampField(zero_as_none=True, allow_none=True, default=None) sale = fields.Int(default=0) loss_reason_id = fields.Int(default=0)
class Task(__CreatedUpdated, __ForElement, BaseEntity): model_name = 'task' model_plural_name = 'tasks' account_id = fields.Int() responsible_user_id = UserIdField('responsible_user') group_id = GroupIdField('group') is_completed = fields.Bool() task_type = fields.Int() complete_till_at = TimestampField() text = fields.Str()
class Contact(__CreatedUpdatedBy, BaseEntity): model_name = 'contact' model_plural_name = 'contacts' schema = _CustomFieldsSchema name = fields.Str() account_id = fields.Int() responsible_user_id = UserIdField('responsible_user') group_id = GroupIdField('group') tags = TagsField() company = EntityField('company', allow_none=True) customers = EntityField('customer', many=True) leads = EntityField('lead', many=True) closest_task_at = TimestampField(zero_as_none=True, allow_none=True)
class __CreatedUpdated: created_by_id = UserIdField(bind_attr='created_by', data_key='created_by') created_at = TimestampField() updated_at = TimestampField()