summaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/lib/models/TimeQueryDto.ts
blob: 607c51e916d838963e432a52769b26f2d5800373 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import type { TimeEntryDto } from "./TimeEntryDto";
import ValidationResult, { IValidationResult } from "./IValidationResult";

export interface ITimeQueryDto {
    results: Array<TimeEntryDto>,
    page: number,
    pageSize: number,
    totalRecords: number,
    totalPageCount: number,
    is_valid: Function
}

export class TimeQueryDto implements ITimeQueryDto {
    results: TimeEntryDto[];
    page: number;
    pageSize: number;
    totalRecords: number;
    totalPageCount: number;

    is_valid(): IValidationResult {
        const result = new ValidationResult();
        if (this.page < 0) {
            result.add_error("page", {
                title: "Page cannot be less than zero",
            })
        }
        return result;
    }
}