import { ApolloClient } from '@apollo/client';
import { NextPageContext } from 'next';

export type TokenPayload = {
  nbf: number;
  exp: number;
  iss: string;
  aud: string;
  client_id: string;
  sub: string;
  auth_time: number;
  idp: string;
  name: string;
  msisdn: string;
  is_staff: string;
  profile_name: string;
  profile_ssn: string;
  email: string;
  ssn: string;
  customer_id: string;
  is_subscriber: string;
  sid: string;
  iat: number;
  scope: string[];
  amr: string[];
};

export type User = {
  name: string;
  ssn?: string;
  msisdn?: string;
  email?: string;
  profileName?: string;
  profileSsn?: string;
  isStaff: boolean;
  isMainProfile: boolean;
  customerId?: string;
};

export interface IContext extends NextPageContext {
  user?: User;
  apolloClient: ApolloClient<object>;
  store: object;
  betaStore: object;
}
