import { User } from 'src/types/user';

export type CelebrationUser = Pick<
  User,
  | 'id'
  | 'createdAt'
  | 'birthdate'
  | 'hiringDate'
  | 'email'
  | 'employeeInternalId'
  | 'firstName'
  | 'lastName'
  | 'profilePicture'
  | 'isUserAnniversary'
  | 'isUserBirthday'
>;

export enum CelebrationType {
  IDLE = 'IDLE',
  ANNIVERSARY = 'ANNIVERSARY',
  BIRTHDAY = 'BIRTHDAY',
  BIRTHDAY_SEGMENTED = 'BIRTHDAY_SEGMENTED',
  ALL = '',
}

// Response
export type UpcomingCelebrationsResponse = {
  upcomingCelebrationDates: string[];
};

export type CelebrationListResponse = {
  count: number;
  limit: number;
  page: number;
  totalPages: number;
  items: CelebrationUser[];
};

export type CelebrationsConfig = {
  birthdayConfiguration: {
    enableBirthdaySegmentation: boolean;
    segmentationGroupId: number | null;
    segmentNotifications: boolean;
    segmentVisualizations: boolean;
    customGroupName: string | null;
    hideNotSegmentedOption: boolean;
    segmentationGroup: {
      id: number;
      name: string;
    } | null;
  };
};
