export interface CalendarEvent {
    id?: number;
    name: string;
    start: Date;
    end: Date;
    location: string;
    color: string;
    description: string;
    creator_id?: number;
    cancelled?: boolean;
    created_at?: Date;
    updated_at?: Date;

    creator_name?: string | null;
    eventSignups?: CalendarSignup[] | null;
}

export enum CalendarAttendance {
    Attending = "attending",
    NotAttending = "not_attending",
    Maybe = "maybe"
}

export interface CalendarSignup {
    member_id: number;
    eventID: number;
    status: CalendarAttendance;
    member_name?: string;
    member_unit?: string;
}    

export interface CalendarEventShort {
    id: number;
    name: string;
    start: Date;
    end: Date;
    color: string;
    cancelled: boolean;
    full_day: boolean;
}