64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
export interface SponsorshipSlot {
|
|
tier: 'main' | 'secondary';
|
|
available: boolean;
|
|
price: number;
|
|
currency?: string;
|
|
benefits: string[];
|
|
}
|
|
|
|
export const SlotTemplates = {
|
|
league: (mainAvailable: boolean, secondaryAvailable: number, mainPrice: number, secondaryPrice: number): SponsorshipSlot[] => [
|
|
{
|
|
tier: 'main',
|
|
available: mainAvailable,
|
|
price: mainPrice,
|
|
benefits: ['Hood placement', 'League banner', 'Prominent logo'],
|
|
},
|
|
{
|
|
tier: 'secondary',
|
|
available: secondaryAvailable > 0,
|
|
price: secondaryPrice,
|
|
benefits: ['Side logo placement', 'League page listing'],
|
|
},
|
|
{
|
|
tier: 'secondary',
|
|
available: secondaryAvailable > 1,
|
|
price: secondaryPrice,
|
|
benefits: ['Side logo placement', 'League page listing'],
|
|
},
|
|
],
|
|
|
|
race: (mainAvailable: boolean, mainPrice: number): SponsorshipSlot[] => [
|
|
{
|
|
tier: 'main',
|
|
available: mainAvailable,
|
|
price: mainPrice,
|
|
benefits: ['Race title sponsor', 'Stream overlay', 'Results banner'],
|
|
},
|
|
],
|
|
|
|
driver: (available: boolean, price: number): SponsorshipSlot[] => [
|
|
{
|
|
tier: 'main',
|
|
available,
|
|
price,
|
|
benefits: ['Suit logo', 'Helmet branding', 'Social mentions'],
|
|
},
|
|
],
|
|
|
|
team: (mainAvailable: boolean, secondaryAvailable: boolean, mainPrice: number, secondaryPrice: number): SponsorshipSlot[] => [
|
|
{
|
|
tier: 'main',
|
|
available: mainAvailable,
|
|
price: mainPrice,
|
|
benefits: ['Team name suffix', 'Car livery', 'All driver suits'],
|
|
},
|
|
{
|
|
tier: 'secondary',
|
|
available: secondaryAvailable,
|
|
price: secondaryPrice,
|
|
benefits: ['Team page logo', 'Minor livery placement'],
|
|
},
|
|
],
|
|
};
|