flaschengeist-frontend/src/plugins/events/store/models.ts

36 lines
970 B
TypeScript

import { date } from 'quasar';
/** An new event does not contain an id and the type might be unset */
export type EditableEvent = Omit<Omit<Omit<FG.Event, 'jobs'>, 'type'>, 'id'> & {
type?: FG.EventType | number;
id?: number;
jobs: EditableJob[];
};
/** A new job does not have an id or type assigned */
export type EditableJob = Omit<Omit<FG.Job, 'type'>, 'id'> & {
type?: FG.EventType | number;
id?: number;
};
export const emptyJob = (d: Date | number = new Date()): EditableJob =>
Object.assign(
{},
{
start: date.adjustDate(d, { minutes: 0, seconds: 0 }),
end: date.addToDate(date.adjustDate(d, { minutes: 0, seconds: 0 }), { hours: 1 }),
services: [],
required_services: 2,
}
);
export const emptyEvent = (d: Date | number = new Date()): EditableEvent =>
Object.assign(
{},
{
start: date.adjustDate(d, { hours: 0, minutes: 0, seconds: 0 }),
jobs: [],
is_template: false,
}
);