refactor(typings): Refactor user and profile models; update API response types
This commit is contained in:
36
src/services/master/typings/alarm.d.ts
vendored
Normal file
36
src/services/master/typings/alarm.d.ts
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
declare namespace MasterModel {
|
||||
interface SearchAlarmPaginationBody extends SearchPaginationBody {
|
||||
order?: 'name' | undefined;
|
||||
thing_name?: string;
|
||||
thing_id?: string;
|
||||
level?: number;
|
||||
}
|
||||
interface AlarmsResponse {
|
||||
total?: number;
|
||||
limit?: number;
|
||||
order?: string;
|
||||
dir?: string;
|
||||
alarms?: Alarm[];
|
||||
}
|
||||
|
||||
interface ConfirmAlarmRequest {
|
||||
id?: string;
|
||||
description?: string;
|
||||
thing_id?: string;
|
||||
time?: number;
|
||||
}
|
||||
// Alarm
|
||||
interface Alarm {
|
||||
name?: string;
|
||||
time?: number;
|
||||
level?: number;
|
||||
id?: string;
|
||||
confirmed?: boolean;
|
||||
confirmed_email?: string;
|
||||
confirmed_time?: number;
|
||||
confirmed_desc?: string;
|
||||
thing_id?: string;
|
||||
thing_name?: string;
|
||||
thing_type?: string;
|
||||
}
|
||||
}
|
||||
11
src/services/master/typings/auth.d.ts
vendored
Normal file
11
src/services/master/typings/auth.d.ts
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
declare namespace MasterModel {
|
||||
interface LoginRequestBody {
|
||||
guid: string;
|
||||
email: string;
|
||||
password: string;
|
||||
}
|
||||
|
||||
interface LoginResponse {
|
||||
token?: string;
|
||||
}
|
||||
}
|
||||
52
src/services/master/typings/group.d.ts
vendored
Normal file
52
src/services/master/typings/group.d.ts
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
declare namespace MasterModel {
|
||||
interface GroupBodyRequest {
|
||||
id?: string;
|
||||
name: string;
|
||||
parent_id?: string;
|
||||
description?: string;
|
||||
metadata?: GroupMetadata;
|
||||
}
|
||||
interface AddGroupBodyResponse extends Partial<GroupBodyRequest> {
|
||||
id: string;
|
||||
}
|
||||
|
||||
interface GroupMetadata {
|
||||
code?: string;
|
||||
short_name?: string;
|
||||
has_thing?: boolean;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
interface GroupResponse {
|
||||
total?: number;
|
||||
level?: number;
|
||||
name?: string;
|
||||
groups?: GroupNode[];
|
||||
}
|
||||
interface GroupNode {
|
||||
id: string;
|
||||
name: string;
|
||||
owner_id: string;
|
||||
description: string;
|
||||
metadata: GroupMetadata;
|
||||
level: number;
|
||||
path: string;
|
||||
parent_id?: string;
|
||||
created_at?: string;
|
||||
updated_at?: string;
|
||||
children?: GroupNode[]; // Đệ quy: mỗi node có thể có children là mảng GroupNode
|
||||
[key: string]: any; // Nếu có thêm trường động
|
||||
}
|
||||
|
||||
interface GroupQueryParams {
|
||||
level?: number;
|
||||
tree?: boolean;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface AssignMemberRequest {
|
||||
group_id: string;
|
||||
type: 'users' | 'admin' | 'things' | undefined;
|
||||
members: string[];
|
||||
}
|
||||
}
|
||||
31
src/services/master/typings/log.d.ts
vendored
Normal file
31
src/services/master/typings/log.d.ts
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
declare namespace MasterModel {
|
||||
interface SearchLogPaginationBody extends SearchPaginationBody {
|
||||
from?: number;
|
||||
to?: number;
|
||||
publisher?: string;
|
||||
subtopic?: string;
|
||||
}
|
||||
|
||||
type LogTypeRequest = 'user_logs' | undefined;
|
||||
|
||||
interface LogResponse {
|
||||
offset?: number;
|
||||
limit?: number;
|
||||
publisher?: string;
|
||||
from?: number;
|
||||
to?: number;
|
||||
format?: string;
|
||||
total?: number;
|
||||
messages?: Message[];
|
||||
}
|
||||
|
||||
interface Message {
|
||||
channel?: string;
|
||||
subtopic?: string;
|
||||
publisher?: string;
|
||||
protocol?: string;
|
||||
name?: string;
|
||||
time?: number;
|
||||
string_value?: string;
|
||||
}
|
||||
}
|
||||
73
src/services/master/typings/thing.d.ts
vendored
Normal file
73
src/services/master/typings/thing.d.ts
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
declare namespace MasterModel {
|
||||
interface SearchThingPaginationBody<T = SearchThingMetadata>
|
||||
extends SearchPaginationBody {
|
||||
order?: string;
|
||||
metadata?: T;
|
||||
}
|
||||
|
||||
interface SearchThingMetadata {
|
||||
external_id?: string;
|
||||
state_level?: string; // vd: "normal,warning,critical,sos"
|
||||
/** kết nối */
|
||||
connected?: boolean;
|
||||
group_id?: string; // "id1,id2,id3"
|
||||
}
|
||||
|
||||
// Thing
|
||||
interface ThingReponseMetadata {
|
||||
address?: string;
|
||||
alarm_list?: string;
|
||||
cfg_channel_id?: string;
|
||||
connected?: boolean;
|
||||
ctrl_channel_id?: string;
|
||||
data_channel_id?: string;
|
||||
enduser?: string;
|
||||
external_id?: string;
|
||||
group_id?: string;
|
||||
req_channel_id?: string;
|
||||
state?: string;
|
||||
state_level?: number;
|
||||
state_updated_time?: number;
|
||||
type?: string;
|
||||
updated_time?: number;
|
||||
}
|
||||
|
||||
interface ThingsResponse<
|
||||
T extends ThingReponseMetadata = ThingReponseMetadata,
|
||||
> extends PaginationReponse {
|
||||
metadata?: ThingsResponseMetadata;
|
||||
things?: Thing<T>[];
|
||||
}
|
||||
|
||||
interface ThingsResponseMetadata {
|
||||
total_connected?: number;
|
||||
total_filter?: number;
|
||||
total_sos?: number;
|
||||
total_state_level_0?: number;
|
||||
total_state_level_1?: number;
|
||||
total_state_level_2?: number;
|
||||
total_thing?: number;
|
||||
}
|
||||
|
||||
interface Thing<T extends ThingReponseMetadata = ThingReponseMetadata> {
|
||||
id?: string;
|
||||
name?: string;
|
||||
key?: string;
|
||||
metadata?: T;
|
||||
}
|
||||
|
||||
// Thing Policy
|
||||
interface ThingPolicyResponse extends PaginationReponse {
|
||||
metadata?: null;
|
||||
things?: ThingPolicy[];
|
||||
}
|
||||
|
||||
interface ThingPolicy {
|
||||
policies?: Policy[];
|
||||
thing_id?: string;
|
||||
thing_name?: string;
|
||||
external_id?: string;
|
||||
}
|
||||
|
||||
type Policy = 'read' | 'delete' | 'write';
|
||||
}
|
||||
44
src/services/master/typings/user.d.ts
vendored
Normal file
44
src/services/master/typings/user.d.ts
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
declare namespace MasterModel {
|
||||
interface SearchUserPaginationBody extends SearchPaginationBody {
|
||||
order?: 'email' | 'name' | undefined;
|
||||
email?: string;
|
||||
metadata?: Partial<UserMetadata>;
|
||||
}
|
||||
interface ChangePasswordRequestBody {
|
||||
old_password: string;
|
||||
password: string;
|
||||
}
|
||||
|
||||
interface UserResponse {
|
||||
id?: string;
|
||||
email?: string;
|
||||
metadata?: UserMetadata;
|
||||
}
|
||||
|
||||
interface UserMetadata {
|
||||
frontend_thing_id?: string;
|
||||
frontend_thing_key?: string;
|
||||
full_name?: string;
|
||||
phone_number?: string;
|
||||
telegram?: string;
|
||||
user_type?: 'admin' | 'enduser' | 'sysadmin' | 'users';
|
||||
}
|
||||
|
||||
// User
|
||||
interface CreateUserMetadata extends UserMetadata {
|
||||
group_id?: string;
|
||||
}
|
||||
|
||||
interface CreateUserBodyRequest extends Partial<UserResponse> {
|
||||
password: string;
|
||||
full_name?: string;
|
||||
metadata?: CreateUserMetadata;
|
||||
}
|
||||
|
||||
interface UserListResponse {
|
||||
total?: number;
|
||||
offset?: number;
|
||||
limit?: number;
|
||||
users: UserResponse[];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user