export class MembershipStatuses { static new = 'NEW' static rejected = 'REJECTED' static accepted = 'ACCEPTED' static expired = 'EXPIRED' } export type MembershipStatus = { [P in keyof MembershipStatuses]?: MembershipStatuses[P]; } export const newMembershipStatuses = [MembershipStatuses.new] export const processedMembershipStatuses = [ MembershipStatuses.rejected, MembershipStatuses.accepted, MembershipStatuses.expired ] export class MembershipTypes { static permanent = 'PERMANENT' static temporaryLimitedPeriod = 'TEMPORARY_LIMITED_PERIOD' static temporaryLimitedRidesAmount = 'TEMPORARY_LIMITED_RIDES_AMOUNT' static temporaryRecurringPeriod = 'TEMPORARY_RECURRING_PERIOD' } export type MembershipType = { [P in keyof MembershipTypes]?: MembershipTypes[P]; }