export interface BrandingResponseAPI {
  count: number;
  items: BrandingResponseItems[];
}
export interface Image {
  fileInfo?: fileInfo;
  presigned?: any;
}
export interface Socials {
  facebook?: string;
  twitter?: string;
  linkedin?: string;
  instagram?: string;
  youtube?: string;
  telegram?: string;
  tiktok?: string;
  website?: string;
}
export type fileInfo = {
  size?: number;
  bucket?: string;
  fileName?: string;
  contentType?: string;
  originalname?: string;
  presigned?: string;
};
export interface ModuleConfig {
  recordManagement: boolean;
  siteManagement: boolean;
  dms: boolean;
  performance: boolean;
  objective: boolean;
  complaint: boolean;
}
export interface FooterData {
  address: string;
  phone: string;
  email: string;
}

export interface BrandingResponse {
  organizationName: {
    am: string;
    en: string;
  };
  logo: {
    fileInfo: fileInfo;
    presigned: string;
  };
  primaryColor: string;
  secondaryColor?: string;
  footerText: string;
  footerData: FooterData;
  socials: Socials;
  welcomeMessage: string;
  loginImage?: {
    fileInfo: fileInfo;
    presigned: string;
  };
  favicon?: {
    fileInfo: fileInfo;
    presigned: string;
  };
  moduleConfig?: Partial<ModuleConfig>;
}
export interface BrandingResponseItems {
  id: any;
  siteId?: string;
  key?: string;
  displayName?: string;
  value?: string;
  type?: string;
  fileInfo?: fileInfo;
  metadata?: fileInfo;
  presigned?: string;
}
export interface BrandingParam {
  organizationName: {
    am: string;
    en: string;
  };
  logo: Image;
  primaryColor: string;
  secondaryColor?: string;
  footerText: string;
  footerData: FooterData;
  socials: Socials;
  welcomeMessage: string;
  loginImage?: Image;
  favicon?: Image;
  moduleConfig?: Partial<ModuleConfig>;
}

export interface BrandingParamAPI {
  id?: string;
  siteId: string;
  key: string;
  displayName: string;
  value: string;
  type: string;
  fileInfo?: fileInfo;
  metadata?: fileInfo;
  presigned?: string;
}
