convexsol_stage/interfaces/LandingInterface.ts
2025-12-02 11:02:00 +05:30

326 lines
7.4 KiB
TypeScript

export interface LandingPageApiResponse {
banner: LandingPageBanner;
numberShowcase: NumberShowcase;
trustedBy: TrustedByInterface;
solutions: SolutionsInterface;
cta1: Cta1Interface;
cta2: Cta1Interface;
cta3: Cta1Interface;
otherTechnologies: OtherTechnologies;
industries: IndustriesInterface;
whyChooseUs: WhyChooseUsInterface;
clientTestimonials: ClientTestimonialInterface;
specialOffer: SpecialOfferInterface;
header: LandingHeaderInterface;
success: LandingSuccessInterface;
popup: ContactPopupFormInterface;
footer: LandingFooterInterface;
offer: LandingOfferInterface;
offer2: LandingOffer2Interface;
showCase: ShowCaseInterface;
priceModel: PriceModelInterface;
customServices: CustomServicesInterface;
whyChoose2: WhyChooseUs2Interface;
faq: FaqInterface;
testimonials: LandingTestimonialInterface;
}
export interface NumberShowcase {
id: number;
title: string;
numbers: NumberShowcaseItem[];
order: number;
isDarkTheme: boolean;
}
export interface TrustedByInterface {
id: number;
order: number;
heading: string;
description: string;
brandLogos: {
data: {
attributes: {
title: string;
description: string;
brands: {
name?: string;
mobile?: boolean;
logo: LogoImageDataInterface;
}[];
};
};
};
}
export interface SolutionsInterface {
id: number;
order: number;
heading: string;
description: string;
cta: string;
cardItems: CardItemsInterface[];
}
export interface LandingPageBanner {
cta: string;
description: string;
title: string;
formCtaText: string;
formHeaderText: string;
formTopImage: LogoImageDataInterface;
heroVideo: LogoVideoDataInterface;
list: LandingPageBannerListItem[];
thumbnail: LogoImageDataInterface;
}
export interface LogoImageDataInterface {
data: {
attributes: {
url: string;
alternativeText: string;
width?: number;
height?: number;
mime?: string;
name?: string;
};
};
}
export interface LogoMultipleImageDataInterface {
data: { attributes: { url: string; alternativeText: string; width?: number; height?: number } }[];
}
export interface LogoVideoDataInterface {
data: { attributes: { url: string; alternativeText: string; width?: number; height?: number } };
}
export interface LandingPageBannerListItem {
icon: LogoImageDataInterface;
id: number;
text: string;
}
export interface NumberShowcaseItem {
id: number;
title: string;
number: string;
icon: LogoImageDataInterface;
}
export interface CardItemsInterface {
id: number;
title: string;
icon: LogoImageDataInterface;
}
export interface Cta1Interface {
id: number;
order: number | null;
title: string;
cta: string;
bgImage: LogoImageDataInterface;
}
export interface OtherTechnologies {
id: number;
order: number;
heading: string;
description: string;
cta: null | string;
cardItems: CardItem[];
}
export interface IndustriesInterface {
id: number;
order: number;
heading: string;
description: string;
cta: string;
cardItems: CardItem[];
}
export interface CardItem {
id: number;
title: string;
icon: LogoImageDataInterface;
}
export interface WhyChooseUsInterface {
id: number;
order: number;
heading: string;
description: string;
cta: null | string;
cardItems: CardItemsInterface[];
}
export interface ClientTestimonialInterface {
id: number;
order: number;
title: string;
videoTestimonial: LogoVideoDataInterface;
clientName: string;
clientDesignation: string;
testimonials: {
data: {
id: number;
attributes: {
name: string;
designation: string;
message: string;
rating: number;
video: LogoVideoDataInterface;
};
}[];
};
}
export interface SpecialOfferInterface {
id: number;
specialOffer: string;
heading: string;
cta: string;
specialOfferIcon: LogoImageDataInterface;
ctaBgImage: LogoImageDataInterface;
order: number;
}
export interface LandingHeaderInterface {
id: number;
contactNumber: string;
btnText: string;
logo: LogoImageDataInterface;
navItems: {
title: string;
link: string;
}[];
isDarkTheme: boolean;
email: string;
}
export interface LandingSuccessInterface {
id: number;
order: number;
heading: string;
cta: string;
accordion: {
id: number;
title: string;
description: string;
icon: LogoImageDataInterface;
image: LogoImageDataInterface;
}[];
}
export interface ContactPopupFormInterface {
id: number;
header: string;
cta: string;
companyLogo: LogoImageDataInterface;
backgroundImage: LogoImageDataInterface;
}
export interface LandingFooterInterface {
id: number;
ctaTitle: string;
ctaDescription: string;
ctaBtn: string;
callTitle: string;
callNumber: string;
emailTitle: string;
email: string;
followTitle: string;
social: { icon: LogoImageDataInterface; link: string }[];
logo: LogoImageDataInterface;
copyRightTxt: string;
isDarkTheme: boolean;
locationTitle: string;
location: string;
locationFlag: LogoImageDataInterface;
}
export interface LandingOfferInterface {
offerTitle: string;
btnText: string;
isDarkTheme: boolean;
}
export interface HeadingDescription {
id: number;
heading: string;
description: string;
order: number;
}
export interface HCD extends HeadingDescription {
// H: Heading, C: CTA, D: Description
cta: string;
}
export interface LandingOffer2Interface {
title: string;
order: number;
}
export interface ShowCaseInterface extends HCD {
projectRow1: LogoMultipleImageDataInterface;
projectRow2: LogoMultipleImageDataInterface;
}
export interface PriceModelInterface extends HeadingDescription {
priceList: {
title: string;
price?: string;
details: string;
btnText: string;
tag: string;
newPrice?: string;
}[];
isDarkTheme?: boolean;
}
export interface CustomServicesInterface extends HCD {
tabs: {
number: string;
icon: LogoImageDataInterface;
title: string;
details: string;
}[];
isDarkTheme?: boolean;
}
export interface WhyChooseUs2Interface extends HCD {
cards: {
images: LogoMultipleImageDataInterface;
title: string;
description: string;
}[];
isDarkTheme: boolean;
}
export interface FaqInterface extends HeadingDescription {
image: LogoImageDataInterface;
faqs: {
id: number;
question: string;
answer: string;
}[];
}
export interface LandingTestimonialInterface extends HeadingDescription {
landingTestimonials: {
data: {
id: number;
attributes: {
name: string;
designation: string;
message: string;
rating: number;
video: LogoVideoDataInterface;
clientImage: LogoImageDataInterface;
};
}[];
};
isDarkTheme: boolean;
}