import { BaseRepositoryPort } from '@humand-packages/common';
import { TimeTrackingKioskLink, TimeTrackingKioskLinkForCreation } from '../../business/models/timeTrackingKioskLink';

export default abstract class TimeTrackingKioskLinkRepositoryPort extends BaseRepositoryPort {
    abstract create(link: TimeTrackingKioskLinkForCreation): Promise<TimeTrackingKioskLink>;

    abstract findActiveNonExpiredLinkByCode(code: string): Promise<TimeTrackingKioskLink | null>;

    abstract findActiveLinksByCode(code: string): Promise<TimeTrackingKioskLink[]>;

    abstract updateLinksStatus(status: string, entryIds: number[]): Promise<void>;

    abstract update(updated: TimeTrackingKioskLink): Promise<TimeTrackingKioskLink>;

    abstract findByIdAndCode(id: number, status: string): Promise<TimeTrackingKioskLink>;

    abstract findWaitingLinkByKioskId(kioskId: number, instanceId: number): Promise<TimeTrackingKioskLink | null>;
}
