interface DataNumObject {
  id: number;
  count: number;
  name: string;
  color: string;
}

interface DataDateAddObject {
  year: number;
  holidayDate: Date | string;
  name: string;
  isSpecial: boolean;
}

interface DataDateMonthObject {
  month: number;
  year: number;
}

//ข้อมูล
interface RequestItemsObject {
  createdAt?: Date;
  createdFullName: string;
  createdUserId: string;
  holidayDate: Date | string;
  id: string;
  isSpecial: boolean;
  lastUpdateFullName: string;
  lastUpdateUserId: string;
  lastUpdatedAt?: Date;
  name: string;
  originalDate: Date;
}

interface DataDateRowObject {
  holidayDate: Date;
  name: string;
  isSpecial: boolean;
  id: string;
}

interface DataDateListsObject {
  id: string;
  dateRange: [Date, Date];
  dataRangeRow: DataDateRowObject[];
  detail: string;
  isSpecial: boolean;
}

//columns
interface Columns {
  [index: number]: {
    name: string;
    align?: string;
    label: string;
    sortable?: boolean;
    field: string | ((row: any) => any);
    headerStyle?: string;
    style?: string;
  };
}

interface TabsObject {
  label: string;
  value: string;
}

export type {
  DataNumObject,
  DataDateAddObject,
  DataDateMonthObject,
  RequestItemsObject,
  DataDateRowObject,
  DataDateListsObject,
  Columns,
  TabsObject,
};
