import type { CSSProperties } from 'react'; /** * 通用响应结构 */ export interface ApiResponse { status: boolean; code: number; message: string; data: T; } export declare type ExtensionFormInfo = { id: number; title: string; code: string; status: string; }; /** * 分页数据结构 */ 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 RoleMetadata { extension_form_id?: number; [key: string]: any; } /** * 角色信息接口 */ export interface RoleInfo { /** 角色ID */ id: number; /** 租户ID */ tenant_id: number; /** 角色代码 */ code: string; /** 角色名称 (多语言) */ name: MultiLanguage; /** 角色描述 (多语言) */ description?: MultiLanguage; /** 角色权限列表 */ permission: string[]; /** 元数据 */ metadata?: RoleMetadata; /** 排序 */ sort: number; /** 创建时间 */ created_at: string; /** 更新时间 */ updated_at: string; /** 关联成员数量 (with_count[]=tenant_account) */ tenant_account_count?: number; /** 中间表信息 (当作为成员关联角色返回时) */ pivot?: { tenant_account_id: number; tenant_role_id: number; created_at: string; updated_at: string; }; } /** * 账户基础信息 */ export interface AccountUser { 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 MemberInfo { /** 租户账户ID */ id: number; /** 租户ID */ tenant_id: number; /** 全局账户ID */ account_id: number; /** 成员类型 */ type: string; /** 昵称 */ nickname: string; /** 员工编号 */ member_id: string | null; /** 状态 */ status: string; /** 创建时间 */ created_at: string; /** 更新时间 */ updated_at: string; /** 关联的账户详情 */ account: AccountUser; /** 关联的角色列表 */ roles: RoleInfo[]; } /** * 权限信息接口 (保留,用于权限选择列表) */ export interface PermissionInfo { id: string; name: string; code: string; enabled: boolean; } /** * 字段信息接口 (保留,用于扩展字段) */ export interface FieldInfo { id: string; name: string; code: string; type: string; visible: boolean; editable: boolean; } /** * SaasRole 组件 Props 接口 */ export interface SaasRoleProps { /** 类名 */ className?: string; /** 样式 */ style?: CSSProperties; } /** * 创建/编辑角色表单值 */ export interface RoleFormValues { code: string; name: MultiLanguage; description?: MultiLanguage; metadata?: RoleMetadata; permission: string[]; sort?: number; } /** * 权限结构 */ export interface PermissionItem { name: MultiLanguage; code: string; } export interface AvailablePermissions { [key: string]: PermissionItem[]; }