diff --git a/src/modules/record/interfaces/recordable.ts b/src/modules/record/interfaces/recordable.ts index 66a9c8a..696b410 100644 --- a/src/modules/record/interfaces/recordable.ts +++ b/src/modules/record/interfaces/recordable.ts @@ -1,7 +1,9 @@ +import type { ISODate } from '@/shared/types/date' + export interface Recordable { id: string taskId: string - start: Date - end?: Date - stepRecords: Record + start: ISODate + end?: ISODate + stepRecords: Record } diff --git a/src/modules/record/models/task-record.ts b/src/modules/record/models/task-record.ts index 399e0f7..2c89953 100644 --- a/src/modules/record/models/task-record.ts +++ b/src/modules/record/models/task-record.ts @@ -1,9 +1,10 @@ +import { toISODate, type ISODate } from '@/shared/types/date' import type { Recordable } from '../interfaces/recordable' export class TaskRecord implements Recordable { - public start: Date = new Date() - public end: Date | undefined = undefined - public stepRecords: Record = {} + public start: ISODate = toISODate(new Date()) + public end: ISODate | undefined = undefined + public stepRecords: Record = {} public constructor( public readonly id: string, @@ -15,7 +16,8 @@ export class TaskRecord implements Recordable { return null } - const durationMilliseconds = this.end.getTime() - this.start.getTime() + const durationMilliseconds = + new Date(this.end).getTime() - new Date(this.start).getTime() return Math.round(durationMilliseconds / (1000 * 60)) } diff --git a/src/modules/record/stores/useTaskRecordStore.ts b/src/modules/record/stores/useTaskRecordStore.ts index 63a7e2a..d9e1339 100644 --- a/src/modules/record/stores/useTaskRecordStore.ts +++ b/src/modules/record/stores/useTaskRecordStore.ts @@ -1,15 +1,8 @@ import { defineStore } from 'pinia' import type { Recordable } from '../interfaces/recordable' -interface StoredTaskRecordable - extends Omit { - start: string - end?: string - stepRecords: Record -} - export interface TaskRecordStoreState { - records: { [taskId: string]: StoredTaskRecordable[] } + records: { [taskId: string]: Recordable[] } } export const useTaskRecordStore = defineStore('task-record-store', { diff --git a/src/shared/types/date.ts b/src/shared/types/date.ts new file mode 100644 index 0000000..ef0f185 --- /dev/null +++ b/src/shared/types/date.ts @@ -0,0 +1,3 @@ +export type ISODate = string + +export const toISODate = (date: Date): ISODate => date.toISOString()