// Interface representing configuration for a single table column
// Defines properties for column display, identification, and visibility state
export interface IColumnConfig {
  // Unique identifier/key for the column, typically maps to a data property name
  key: string;

  // Display name to be shown in the table header
  title: string;

  // Visibility state of the column:
  // - boolean: true = visible/checked, false = hidden/unchecked
  // - string: allows for additional states like "indeterminate" or custom states
  is_checked: boolean | string;
}

// Type definition for table configuration settings
// Stores user preferences for table display and behavior
export type TableSettings = {
  // Array of column configurations defining which columns are displayed and their order
  columns: IColumnConfig[];

  // Number of records/rows to display per page for pagination
  record_per_page: number;
};

// Interface representing a center or location entity
// Used for location-based data organization and filtering
export interface ICenterLocation {
  // Unique numeric identifier for the center/location
  center_id: number;

  // Human-readable name of the center/location
  center_name: string;
}
