Karolis' playground schedule / master src / lib / models / models.ts
master

Tree @master (Download .tar.gz)

models.ts @masterraw · history · blame

export const days = [
  "monday",
  "tuesday",
  "wednesday",
  "thursday",
  "friday",
  "saturday",
  "sunday",
] as const;
export type weekDay = (typeof days)[number];

export type periodType = "first" | "work" | "placeholder";

export type timeperiod = {
  type: periodType;
  label?: string;
  startTime: number; //0-24 -> 0:00-24:00
  endTime: number; //0-24 -> 0:00-24:00
};

export type Day = {
  Name: weekDay;
  date?: Date;
  operators: Map<string, timeperiod[]>;
};

export function SelectOperators(d: Day, ...username: string[]): Day {
  const { operators } = d;
  const uset = new Set(username);
  return {
    ...d,
    operators: new Map(
      [...operators.entries()].filter(([n, _]) => uset.has(n)),
    ),
  };
}