@nnc-digital/nnc-design-system
Version:
Design system for West & North Northamptonshire Councils, two unitary councils encompassing Wellingborough, Corby, Daventry, East Northants, Kettering, Northampton, Northamptonshire County and South Northants.
207 lines (206 loc) • 4.33 kB
TypeScript
import React from 'react';
import { FileDownloadProps } from '../../components/FileDownload/FileDownload.types';
import { SocialProfile } from '../../directory/ServiceSocialLinks/ServiceSocialLinks.types';
import { ServiceContactProps } from '../../directory/ServiceContact/ServiceContact.types';
export interface EventProps {
/**
* The unique event id
*/
id: string;
/**
* The event name/title
*/
name: string;
/**
* The description as a plain HTML string
*/
description: string;
/**
* The description as a react node
*/
descriptionElement?: React.ReactNode;
/**
* The event start date and time in ISO format
*/
startDateTime: string;
/**
* The event end date and time in ISO format
*/
endDateTime?: string;
/**
* The event type/category
*/
eventType?: string;
/**
* The target audience for the event
*/
audience?: string[];
/**
* The organization hosting the event
*/
organization: EventOrganizationProps;
/**
* Event location information
*/
location?: EventLocationProps;
/**
* The optional service email address
*/
email?: string;
/**
* The optional costs of the event
*/
fees?: string;
/**
* The event website address
*/
url?: string;
/**
* The event website url title
*/
websiteUrlTitle?: string;
/**
* An array of contacts with phone numbers
*/
contacts?: ServiceContactProps[];
/**
* An optional array of files/links belonging to the event
*/
uploads?: FileDownloadProps[];
/**
* An optional array of social profile links
*/
socialProfiles?: SocialProfile[];
/**
* When the event was updated. Expected format YYYY-MM-DD
*/
updatedAt?: string;
/**
* The url to the shortlist
*/
shortListPath?: string;
/**
* Is this event recurring?
*/
isRecurring?: boolean;
/**
* Recurrence pattern information
*/
recurrencePattern?: string;
/**
* Registration deadline
*/
registrationDeadline?: string;
/**
* Maximum capacity for the event
*/
capacity?: number;
/**
* Current number of registered attendees
*/
currentAttendees?: number;
}
export interface EventOrganizationProps {
/**
* The unique identifier for the organization
*/
id: string;
/**
* The name of the organization
*/
name: string;
/**
* The description of the organization
*/
description?: string;
/**
* The full path to the organization logo
*/
logo?: string;
/**
* The organization website address
*/
url?: string;
}
export interface EventLocationProps {
/**
* The unique identifier for the location
*/
id: number;
/**
* The name of the location
*/
name: string;
/**
* The optional description
*/
description?: string;
/**
* Is the location visitable by the public?
*/
isVisitable?: boolean;
/**
* The latitude of the location
*/
latitude?: string;
/**
* The longitude of the location
*/
longitude?: string;
/**
* The address information
*/
address?: EventAddressProps;
/**
* An array of facilities that the location offers
*/
accessibility?: EventAccessibilityProps[];
/**
* Is this a virtual/online event?
*/
isVirtual?: boolean;
/**
* Virtual meeting link/information
*/
virtualMeetingInfo?: string;
}
export interface EventAddressProps {
/**
* The unique identifier
*/
id: number;
/**
* The street number and address line 1
*/
address1: string;
/**
* Address line 2
*/
address2?: string;
/**
* The city
*/
city: string;
/**
* The county
*/
county: string;
/**
* The postcode
*/
postcode: string;
/**
* The country
*/
country: string;
}
export interface EventAccessibilityProps {
/**
* The unique identifier
*/
id: number;
/**
* The name of the facility offered by the location
*/
accessibility: string;
}