import { v7 as uuidv7 } from 'uuid';
import {
    TimeTrackingKioskUser,
    TimeTrackingKioskUserCreationAttributes,
    TimeTrackingKioskUserForCreation,
} from '../../../business/models/timeTracking/timeTrackingKioskUser';
import { TimeTrackingKioskUserDAO } from '../../dataAccessObjects/timeTracking/timeTrackingKioskUser';

export const mapTimeTrackingKioskUserDAOToModel = (timeTrackingKioskUser: TimeTrackingKioskUserDAO): TimeTrackingKioskUser => {
    return new TimeTrackingKioskUser({
        deleted: timeTrackingKioskUser.deletedAt !== null,
        deletedAt: timeTrackingKioskUser.deletedAt,
        id: timeTrackingKioskUser.id,
        instanceId: timeTrackingKioskUser.instanceId,
        regionId: timeTrackingKioskUser.regionId,
        siteId: timeTrackingKioskUser.siteId,
        updatedAt: timeTrackingKioskUser.updatedAt,
        userId: timeTrackingKioskUser.userId,
    });
};

export const mapTimeTrackingKioskUserForCreationToCreationAttributes = (
    kioskUser: TimeTrackingKioskUserForCreation,
): TimeTrackingKioskUserCreationAttributes => ({
    deletedAt: kioskUser.deletedAt,
    id: uuidv7(),
    instanceId: kioskUser.instanceId,
    regionId: kioskUser.regionId,
    siteId: kioskUser.siteId,
    userId: kioskUser.userId,
});
