import type { CSSProperties } from 'react'; /** * 通用响应结构 */ export interface ApiResponse { status: boolean; code: number; message: string; data: T; } /** * 分页数据结构 */ export interface PaginationData { list: T[]; count: number; page: number; size: number; } /** * 多语言字段 */ export interface MultiLanguage { en?: string; 'zh-CN'?: string; 'zh-HK'?: string; 'ja'?: string; 'pt'?: string; original?: string; [key: string]: string | undefined; } /** * 账户基础信息 */ export interface AccountInfo { id: number; tenant_id: number; email: string | null; phone: string | null; avatar: string | null; name: string | null; first_name: string | null; last_name: string | null; nickname: string | null; locale: string; timezone: string; status: string; login_times: number; login_ip: string | null; login_at: string | null; created_at: string; updated_at: string; } /** * 角色信息 */ export interface RoleInfo { id: number; tenant_id: number; code: string; name: MultiLanguage; description?: MultiLanguage; permission: string[]; metadata?: { extension_form_id?: number; [key: string]: any; }; sort: number; created_at: string; updated_at: string; pivot?: { tenant_account_id: number; tenant_role_id: number; created_at: string; updated_at: string; }; } /** * 团队成员信息接口 */ export interface TeamMemberInfo { /** 租户账户ID */ id: number; /** 租户ID */ tenant_id: number; /** 全局账户ID */ account_id: number; /** 成员类型 */ type: string; /** 昵称 */ nickname: string; /** 员工编号 */ member_id: string | null; /** 状态 */ status: 'active' | 'inactive'; /** 创建时间 */ created_at: string; /** 更新时间 */ updated_at: string; /** 关联的账户详情 */ account?: AccountInfo; /** 关联的角色列表 */ roles?: RoleInfo[]; } /** * 团队成员表单值 */ export interface TeamMemberFormValues { /** 昵称/偏好名称 */ nickname: string; /** 成员编号 */ member_id?: string; /** 状态 */ status: 'active' | 'inactive'; /** 角色ID列表 */ tenant_role_ids?: number[]; /** 邮箱(新建时) */ email?: string; /** 密码(新建时) */ password?: string; /** 名 */ first_name?: string; /** 姓 */ last_name?: string; /** 手机号码 */ phone?: string; } /** * 查询参数 */ export interface TeamMemberQueryParams { page?: number; size?: number; search?: string; tenant_role_ids?: number[]; status?: 'active' | 'inactive'; with?: string[]; } /** * SaasTeamMembers 组件 Props 接口 */ export interface SaasTeamMembersProps { /** 类名 */ className?: string; /** 样式 */ style?: CSSProperties; } /** * 抽屉模式 */ export declare type DrawerMode = 'create' | 'edit'; /** * 筛选器状态 */ export interface FilterState { roles?: number[]; status?: string; }