init record notion
This commit is contained in:
7
src/modules/record/interfaces/recordable.ts
Normal file
7
src/modules/record/interfaces/recordable.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export interface Recordable {
|
||||
id: string
|
||||
taskId: string
|
||||
start: Date
|
||||
end?: Date
|
||||
stepRecords: Record<string, { minutes: number }>
|
||||
}
|
||||
22
src/modules/record/models/task-record.ts
Normal file
22
src/modules/record/models/task-record.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import type { Recordable } from '../interfaces/recordable'
|
||||
|
||||
export class TaskRecord implements Recordable {
|
||||
public start: Date = new Date()
|
||||
public end: Date | undefined = undefined
|
||||
public stepRecords: Record<string, { minutes: number }> = {}
|
||||
|
||||
public constructor(
|
||||
public readonly id: string,
|
||||
public readonly taskId: string
|
||||
) {}
|
||||
|
||||
public get duration(): number | null {
|
||||
if (!this.end) {
|
||||
return null
|
||||
}
|
||||
|
||||
const durationMilliseconds = this.end.getTime() - this.start.getTime()
|
||||
|
||||
return Math.round(durationMilliseconds / (1000 * 60))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user