import { Date, Time } from "std-widgets.slint";
import { CalendarDay } from "../../components/Calendar.slint";

export struct Source {
	id: int,
	name: string,
	selected: bool,
	path: string
}

export struct TaskData {
	sourceId: int,
	eventId: int,
	id: int,
    title: string,
	date: Date,
    checked: bool,
}

export struct Event {
	sourceId: int,
	id: int,
	title: string,
	startsAt: Time,
	endsAt: Time,
	tasks: [TaskData],
}

export struct Day {
	sourceId: int,
	id: int,
	date: Date,
	events: [Event],
	tasks: [TaskData],
	isLate: bool,
	isToday: bool,
	relativeDaysDiff: int
}

export global AppWindowModels  {
    in-out property<[Source]> sources-selected; 
    in-out property<int> default-source-index;
    in-out property<[string]> sources;
	in-out property<bool> no-source-selected;
	in-out property<[Day]> days;
	in-out property<[CalendarDay]> calendar;
	in-out property<[TaskData]> unscheduled-tasks;

	callback get-source-id-from-name(string) -> int;
	pure callback get-source-name-from-id(int) -> string;
}
