export interface KeyValue { name: string; value: string; } export interface KeyValueStyle { name: string; value: string; icon:string; bgColorClass:string; textColorClass:string; } export type SelectOption = { value: T; label: string; }; export interface Listing { id: string; userId: string; title: string; description: Array; location: string;//enum favoritesForUser:Array; hideImage?:boolean; created:Date; updated:Date; } export interface BusinessListing extends Listing { listingsCategory: 'business'; //enum summary: Array; type: string; //enum price?: number; realEstateIncluded?: boolean; salesRevenue?: number; cashFlow?: number; netProfit?: number; inventory?: string; employees?: number; established?: number; reasonForSale?: string; brokerLicencing?: string; internals?: string; } export interface ProfessionalsBrokersListing extends Listing { listingsCategory: 'professionals_brokers'; //enum summary: string; address?: string; email?: string; website?: string; category?: 'Professionals' | 'Broker'; } export interface InvestmentsListing extends Listing { listingsCategory: 'investment'; //enum email?: string; website?: string; phoneNumber?: string; } export type ListingType = | BusinessListing | ProfessionalsBrokersListing | InvestmentsListing; export interface ListingCriteria { type:string, location:string, minPrice:string, maxPrice:string, realEstateChecked:boolean, listingsCategory:'business'|'professionals_brokers'|'investment', category:'professional|broker' } export interface User { id: string; username: string; firstname: string; lastname: string; email: string; } export interface Subscription { id: string; userId:string level: string; start: Date; modified: Date; end: Date; status: string; invoices: Array; } export interface Invoice { id: string, date: Date, price: number } export interface JwtToken { exp: number; iat: number; auth_time: number; jti: string; iss: string; aud: string; sub: string; typ: string; azp: string; nonce: string; session_state: string; acr: string; realm_access: Realmaccess; resource_access: Resourceaccess; scope: string; sid: string; email_verified: boolean; name: string; preferred_username: string; given_name: string; family_name: string; email: string; user_id: string; } interface Resourceaccess { account: Realmaccess; } interface Realmaccess { roles: string[]; } export interface PageEvent { first: number; rows: number; page: number; pageCount: number; }