export interface MaskOption {
    value: number;
    label: string;
    options?: MaskOption[];
}

export interface EventData {
    id: number;
    name: string;
    type: string;
    milestone: number;
    min_level: number;
    item_id: number;
    item_name: string;
    item_count: number;
    protect_type: number;
    octet: string | null;
    mask: number;
    mail_title: string | null;
    mail_message: string | null;
    is_active: boolean;
    start_date: string | null;
    end_date: string | null;
    created_at: string;
    current_registrations: number;
    milestone_reached: boolean;
    milestone_user_id: number | null;
    claims_count: number;
    creator?: {
        ID: number;
        name: string;
    };
}

export interface PaginatedEvents {
    data: EventData[];
    current_page: number;
    last_page: number;
    per_page: number;
    total: number;
    from: number;
    to: number;
}

export interface EventFormData {
    name: string;
    type: string;
    milestone: string;
    min_level: string;
    item_id: string;
    item_name: string;
    item_count: string;
    protect_type: string;
    octet: string;
    mask: string;
    is_active: boolean;
}

export interface EventPageProps {
    events: PaginatedEvents;
    currentRegistrationCount: number;
    masks: MaskOption[];
}
