31 lines
No EOL
729 B
TypeScript
31 lines
No EOL
729 B
TypeScript
import { Model } from "@/assets/Model";
|
|
import { DateTime, Duration } from "luxon";
|
|
|
|
export type EventData = {
|
|
summary: string;
|
|
description: string;
|
|
dtstart: string;
|
|
dtend: string;
|
|
};
|
|
|
|
export class EventModel extends Model {
|
|
public summary: string;
|
|
public description: string;
|
|
public start: DateTime;
|
|
public duration: Duration;
|
|
|
|
public constructor(json_data: EventData) {
|
|
super();
|
|
|
|
this.summary = json_data.summary;
|
|
this.description = json_data.description;
|
|
this.start = DateTime
|
|
.fromISO(json_data.dtstart)
|
|
.setLocale(navigator.language);
|
|
const end = DateTime
|
|
.fromISO(json_data.dtend)
|
|
.setLocale(navigator.language);
|
|
|
|
this.duration = end.diff(this.start);
|
|
}
|
|
} |