99 lines
2.1 KiB
Python
99 lines
2.1 KiB
Python
# -*- coding:utf-8 -*-
|
||
"""
|
||
@File : meian_model
|
||
@Author : xuxingchen
|
||
@Version : 1.0
|
||
@Contact : xuxingchen@sinochem.com
|
||
@Desc : Data Entity
|
||
"""
|
||
|
||
from pydantic import BaseModel
|
||
|
||
# 错误码
|
||
error_code = {
|
||
0: "成功",
|
||
-1: "图片下载超时",
|
||
-2: "图片下载失败",
|
||
-3: "用户ID不存在",
|
||
-4: "参数无效",
|
||
-5: "注册失败",
|
||
-6: "用户ID已存在",
|
||
-7: "无效人脸",
|
||
-8: "内部错误",
|
||
-9: "图片解码失败,图像尺寸宽高像素应为540*960",
|
||
-10: "添加人脸失败",
|
||
-11: "人脸图像无特征",
|
||
-12: "查询离线通行记录失败",
|
||
-13: "设备忙",
|
||
-14: "rf_id_not_exist",
|
||
-15: "rf_id_existed",
|
||
-16: "add_rf_id_failed or rm_rf_id_failed",
|
||
-17: "get_rf_id_reader_mode_failed",
|
||
-18: "set_rf_id_reader_mode_failed",
|
||
-19: "添加人脸操作不支持",
|
||
}
|
||
|
||
|
||
class BaseInfo(BaseModel):
|
||
data_type: str = None
|
||
|
||
def check(self):
|
||
for attr in self.__dict__.keys():
|
||
# if property can be null, default value should not be set to None
|
||
if self.__dict__[attr] is None:
|
||
raise ValueError(f"{attr} not allowed to be set to None")
|
||
|
||
|
||
class BaseRequest(BaseInfo):
|
||
device_id: str = None
|
||
token: str = None
|
||
|
||
|
||
class BaseResponse(BaseInfo):
|
||
factory_id: str = None
|
||
error_code: int = None
|
||
token: str = None
|
||
|
||
|
||
class HeartBeat(BaseInfo):
|
||
device_id: str = None
|
||
factory_id: str = None
|
||
|
||
|
||
class PushRtAccessRecord(HeartBeat):
|
||
time: str = None
|
||
user_id: str = None
|
||
access_mode: str = None
|
||
|
||
|
||
class Register(BaseRequest):
|
||
factory_id: str = None # 厂商唯一标识
|
||
device_type: int = None # 0:面板机,1:梯控机
|
||
device_position_code: str = None
|
||
device_position_desc: str = None
|
||
|
||
|
||
class FaceInfo(BaseModel):
|
||
dataType: str
|
||
deviceId: str
|
||
token: str
|
||
userId: str
|
||
faceUrl: str
|
||
floor: int
|
||
|
||
|
||
class QrCodeInfo(BaseModel):
|
||
dataType: str
|
||
deviceId: str
|
||
token: str
|
||
userId: str
|
||
qrCode: str
|
||
floor: int
|
||
|
||
|
||
class DeleteUser(BaseModel):
|
||
dataType: str
|
||
deviceId: str
|
||
token: str
|
||
userId: str
|