
export type TimesheetMonth  = [Week,Week,Week,Week,Week,Week]

type Week = [TimesheetDay,TimesheetDay,TimesheetDay,TimesheetDay,TimesheetDay,TimesheetDay,TimesheetDay]

export interface TimesheetDay {

    date: string,
    content: string,
    has_control: boolean,
    public_holiday: string | false

}


// ── Month entry inside an AlfaEna record ───────────────────────────────────
export interface AlfaEnaMonth {
    index: number;
    name: string;
    has_submitted?: boolean;
    isActive?: boolean;
    project_codes?: string[];
}

// ── Single collaborator record ─────────────────────────────────────────────
export interface AlfaEna {
    collaborators_status: boolean;
    fullname: string;
    user_id: number;
    hash_id: string;
    project_codes: string[];
    // unit_acronym: string;
    // scientific_supervisor_fullname: string;
    file_updated_at: string;
    notified_at: string;
    year: number;
    has_submitted: boolean;
    months?: AlfaEnaMonth[];
    month?: AlfaEnaMonth;
}

// ── Paginated response wrapper ─────────────────────────────────────────────
export interface AlfaEnaResponse {
    records: AlfaEna[];
    metadata: {
        current_page: number;
        per_page: number;
        total: number;
        last_page: number;
    };
    last_fetched: string;
}

// ── Request params ─────────────────────────────────────────────────────────
export interface GetAlfaEnaParams {
    has_submitted: boolean | null;
    order:  'ASC' | 'DESC';
    order_by: string;
    page: number;
    page_size: number;
    search: string;
    project_code: number;
    active_role: string;
    month?: number;
    year?: number ;
    collaborators_status?: number;
    filter_type?: number;
}

// ── Filters response ───────────────────────────────────────────────────────
export interface AlfaEnaFilters {
    projects: { value: number; name: string }[];
    statuses: { value: number; name: string }[];
    years: { value: number; name: string }[];
    months: { value: number; name: string }[];
}
