types.d.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { User } from '../../share/types.ts';
  2. declare module './users' {
  3. interface UsersResponse {
  4. data: User[];
  5. pagination: {
  6. total: number;
  7. current: number;
  8. pageSize: number;
  9. totalPages: number;
  10. };
  11. }
  12. interface UserResponse {
  13. data: User;
  14. message?: string;
  15. }
  16. interface UserCreateResponse {
  17. message: string;
  18. data: User;
  19. }
  20. interface UserUpdateResponse {
  21. message: string;
  22. data: User;
  23. }
  24. interface UserDeleteResponse {
  25. message: string;
  26. id: number;
  27. }
  28. interface UserConvertResponse {
  29. message: string;
  30. data: User;
  31. }
  32. export const UserAPI: {
  33. getUsers: (params?: { page?: number; limit?: number; search?: string }) => Promise<UsersResponse>;
  34. getUser: (userId: number) => Promise<UserResponse>;
  35. createUser: (userData: Partial<User>) => Promise<UserCreateResponse>;
  36. updateUser: (userId: number, userData: Partial<User>) => Promise<UserUpdateResponse>;
  37. deleteUser: (userId: number) => Promise<UserDeleteResponse>;
  38. convertToStudent: (userId: number) => Promise<UserConvertResponse>;
  39. };
  40. }
  41. declare module 'antd' {
  42. interface SelectProps {
  43. placeholder?: string;
  44. children?: React.ReactNode;
  45. }
  46. interface SelectOptionProps {
  47. value: string | number;
  48. children: React.ReactNode;
  49. disabled?: boolean;
  50. }
  51. export const Select: React.FC<SelectProps> & {
  52. Option: React.FC<SelectOptionProps>;
  53. };
  54. }