import { OptionalNullable } from '@humand-packages/common';
import { TimeTrackingPolicyApprovalStep } from '../timeTrackingPolicyApprovalStep';

export class TimeTrackingPolicyApprovalStepResponsibleUserForCreation {
    constructor(properties: OptionalNullable<TimeTrackingPolicyApprovalStepResponsibleUserForCreation>) {
        this.approvalStepId = properties.approvalStepId;
        this.userId = properties.userId;
    }

    public readonly approvalStepId: string;
    public readonly userId: number;
}

export class TimeTrackingPolicyApprovalStepResponsibleUser extends TimeTrackingPolicyApprovalStepResponsibleUserForCreation {
    constructor(properties: OptionalNullable<TimeTrackingPolicyApprovalStepResponsibleUser>) {
        super(properties);
        this.id = properties.id;
        this.createdAt = properties.createdAt;
        this.updatedAt = properties.updatedAt;
        this.deletedAt = properties.deletedAt ?? null;
        this.approvalStep = properties.approvalStep ?? null;
    }

    public readonly id: string;
    public readonly createdAt: Date;
    public readonly updatedAt: Date;
    public readonly deletedAt: Date | null;
    public readonly approvalStep: TimeTrackingPolicyApprovalStep | null;
}
