refactor(typings): Refactor user and profile models; update API response types

This commit is contained in:
Tran Anh Tuan
2026-01-24 18:18:16 +07:00
parent 1a06328c77
commit b0b09a86b7
43 changed files with 1035 additions and 967 deletions

View File

@@ -34,19 +34,19 @@ const ManagerUserPage = () => {
const [isLoading, setIsLoading] = useState<boolean>(false);
const [messageApi, contextHolder] = message.useMessage();
const [selectedRowsState, setSelectedRowsState] = useState<
MasterModel.ProfileResponse[]
MasterModel.UserResponse[]
>([]);
const [groupCheckedKeys, setGroupCheckedKeys] = useState<
string | string[] | null
>(null);
const handleClickAssign = (user: MasterModel.ProfileResponse) => {
const handleClickAssign = (user: MasterModel.UserResponse) => {
const path = `${ROUTE_MANAGER_USERS}/${user.id}/${ROUTE_MANAGER_USERS_PERMISSIONS}`;
history.push(path);
};
const columns: ProColumns<MasterModel.ProfileResponse>[] = [
const columns: ProColumns<MasterModel.UserResponse>[] = [
{
key: 'email',
title: (
@@ -136,7 +136,7 @@ const ManagerUserPage = () => {
},
];
const handleRemove = async (selectedRows: MasterModel.ProfileResponse[]) => {
const handleRemove = async (selectedRows: MasterModel.UserResponse[]) => {
const key = 'remove_user';
if (!selectedRows) return true;
@@ -151,7 +151,7 @@ const ManagerUserPage = () => {
key,
});
const allDelete = selectedRows.map(
async (row: MasterModel.ProfileResponse) => {
async (row: MasterModel.UserResponse) => {
await apiDeleteUser(row?.id || '');
},
);
@@ -196,7 +196,7 @@ const ManagerUserPage = () => {
/>
</ProCard>
<ProCard colSpan={{ xs: 24, sm: 24, md: 18, lg: 18, xl: 18 }}>
<ProTable<MasterModel.ProfileResponse>
<ProTable<MasterModel.UserResponse>
columns={columns}
tableLayout="auto"
actionRef={actionRef}
@@ -210,7 +210,7 @@ const ManagerUserPage = () => {
selectedRowKeys: selectedRowsState.map((row) => row.id!),
onChange: (
_: React.Key[],
selectedRows: MasterModel.ProfileResponse[],
selectedRows: MasterModel.UserResponse[],
) => {
setSelectedRowsState(selectedRows);
},
@@ -249,12 +249,12 @@ const ManagerUserPage = () => {
let users = userByGroupResponses.users || [];
// Apply filters
if (email) {
users = users.filter((user: MasterModel.ProfileResponse) =>
users = users.filter((user: MasterModel.UserResponse) =>
user.email?.includes(email),
);
}
if (phone_number) {
users = users.filter((user: MasterModel.ProfileResponse) =>
users = users.filter((user: MasterModel.UserResponse) =>
user.metadata?.phone_number?.includes(phone_number),
);
}
@@ -269,7 +269,7 @@ const ManagerUserPage = () => {
};
} else {
// Use regular queryUsers API
const metadata: Partial<MasterModel.ProfileMetadata> = {};
const metadata: Partial<MasterModel.UserMetadata> = {};
if (phone_number) metadata.phone_number = phone_number;
const query: MasterModel.SearchUserPaginationBody = {