26 lines
871 B
TypeScript
26 lines
871 B
TypeScript
type PartBlueprint = string
|
|
type UserBlueprint = string
|
|
|
|
export type GraphBuilder=
|
|
<
|
|
Users extends Record<string, UserBlueprint>,
|
|
Roles extends Record<string, [ name:string, ...users:Array<keyof Users>]>,
|
|
Parts extends Record<string, PartBlueprint>,
|
|
Desks extends Record<string, [ name:string, roles:Array<keyof Roles>, mode:"all"|"one", need:Partial<Record<keyof Parts, number>>, ...make:Array<keyof Parts>]>
|
|
>
|
|
(
|
|
params:{users:Users,
|
|
roles:Roles,
|
|
parts:Parts,
|
|
desks:Desks}
|
|
)
|
|
=>void
|
|
|
|
|
|
export type User = {name:string, desk:Set<Desk>};
|
|
export type Role = {name:string, user:User[]};
|
|
export type Desk = {name:string, need:Part[], time:number[], make:Part[], mode:string, role:Role[]};
|
|
export type Work = [user:User, part:Part, time:number, data:string];
|
|
export type Part = {name:string, time:number, work:Work[], need:Desk[], make:Desk[]};
|
|
|