57 lines
1.1 KiB
TypeScript
57 lines
1.1 KiB
TypeScript
import { DateTime } from "luxon"
|
|
|
|
export class Task {
|
|
constructor(
|
|
public id: number | undefined,
|
|
public title: string,
|
|
public description: string,
|
|
public done: boolean,
|
|
public estimated_time: number,
|
|
public due_date: DateTime | undefined
|
|
) { }
|
|
|
|
static fromSimpleTask(simpleTask: SimpleTask) {
|
|
return new Task(
|
|
simpleTask.id,
|
|
simpleTask.title,
|
|
simpleTask.description,
|
|
simpleTask.done,
|
|
simpleTask.estimated_time,
|
|
simpleTask.due_date
|
|
)
|
|
}
|
|
|
|
static fromSerializable(serializableTask: SerializableTask) {
|
|
console.log('dings', serializableTask.due_date)
|
|
return new Task(
|
|
serializableTask.id,
|
|
serializableTask.title,
|
|
serializableTask.description,
|
|
serializableTask.done,
|
|
serializableTask.estimated_time,
|
|
DateTime.now()
|
|
)
|
|
}
|
|
}
|
|
|
|
export type SimpleTask = {
|
|
id: number | undefined
|
|
title: string
|
|
description: string
|
|
done: boolean
|
|
estimated_time: number
|
|
due_date: DateTime | undefined
|
|
}
|
|
|
|
export type SerializableTask = {
|
|
id: number | undefined
|
|
title: string
|
|
description: string
|
|
done: boolean
|
|
estimated_time: number
|
|
due_date: string | undefined
|
|
created_at: string
|
|
updated_at: string
|
|
userid: string
|
|
}
|