Qassure-frontend/src/types/user.ts

92 lines
1.6 KiB
TypeScript

export interface User {
id: string;
email: string;
first_name: string;
last_name: string;
status: 'active' | 'suspended' | 'deleted';
auth_provider: string;
tenant_id?: string;
role_id?: string;
tenant?: {
id: string;
name: string;
};
role?: {
id: string;
name: string;
};
department_id?: string;
designation_id?: string;
department?: {
id: string;
name: string;
};
designation?: {
id: string;
name: string;
};
created_at: string;
updated_at: string;
}
export interface Pagination {
page: number;
limit: number;
total: number;
totalPages: number;
hasMore: boolean;
}
export interface UsersResponse {
success: boolean;
data: User[];
pagination: Pagination;
}
export interface CreateUserRequest {
email: string;
password: string;
first_name: string;
last_name: string;
status: 'active' | 'suspended' | 'deleted';
auth_provider: 'local';
tenant_id?: string;
role_id: string;
department_id?: string;
designation_id?: string;
}
export interface CreateUserResponse {
success: boolean;
data: User;
message?: string;
}
export interface GetUserResponse {
success: boolean;
data: User;
}
export interface UpdateUserRequest {
email: string;
first_name: string;
last_name: string;
status: 'active' | 'suspended' | 'deleted';
auth_provider?: string;
tenant_id: string;
role_id: string;
department_id?: string;
designation_id?: string;
}
export interface UpdateUserResponse {
success: boolean;
data: User;
message?: string;
}
export interface DeleteUserResponse {
success: boolean;
message?: string;
}