90 lines
1.4 KiB
TypeScript
90 lines
1.4 KiB
TypeScript
export type Role = "org_admin" | "dept_admin" | "team_lead" | "agent";
|
|
|
|
export interface Organization {
|
|
id: string;
|
|
name: string;
|
|
}
|
|
|
|
export interface Department {
|
|
id: string;
|
|
name: string;
|
|
orgId: string;
|
|
}
|
|
|
|
export interface Team {
|
|
id: string;
|
|
name: string;
|
|
deptId: string;
|
|
}
|
|
|
|
export interface Agent {
|
|
id: string;
|
|
name: string;
|
|
roles: Role[];
|
|
}
|
|
|
|
export interface Identity {
|
|
id: string;
|
|
agentId: string;
|
|
deptId: string;
|
|
teamId: string;
|
|
meta: Record<string, string>;
|
|
}
|
|
|
|
export interface Supervisor {
|
|
agentId: string;
|
|
supervisorId: string;
|
|
}
|
|
|
|
export interface SchemaField {
|
|
type: "string";
|
|
queryable: boolean;
|
|
}
|
|
|
|
export interface YonexusSchema {
|
|
[field: string]: SchemaField;
|
|
}
|
|
|
|
export interface StoreState {
|
|
organizations: Organization[];
|
|
departments: Department[];
|
|
teams: Team[];
|
|
agents: Agent[];
|
|
identities: Identity[];
|
|
supervisors: Supervisor[];
|
|
}
|
|
|
|
export interface Actor {
|
|
agentId: string;
|
|
}
|
|
|
|
export type Action =
|
|
| "create_department"
|
|
| "create_team"
|
|
| "register_agent"
|
|
| "assign_identity"
|
|
| "set_supervisor"
|
|
| "query_agents";
|
|
|
|
export interface Scope {
|
|
orgId?: string;
|
|
deptId?: string;
|
|
teamId?: string;
|
|
}
|
|
|
|
export interface QueryFilter {
|
|
field: string;
|
|
op: "eq" | "contains" | "regex";
|
|
value: string;
|
|
}
|
|
|
|
export interface QueryOptions {
|
|
limit?: number;
|
|
offset?: number;
|
|
}
|
|
|
|
export interface QueryInput {
|
|
filters: QueryFilter[];
|
|
options?: QueryOptions;
|
|
}
|