import { Product } from '../../accounts/model/Account'; import { UserRole } from './UserRole'; export interface BaseUserRequest { firstName: string; lastName: string; email: string; } export interface CreateUserRequest extends BaseUserRequest { accountId: string; type: UserType; userRoles?: { [key in Product]?: UserRole; }; } export interface CreateTrialUserRequest extends BaseUserRequest { accountName: string; password: string; type: UserType.trialB2bUser; recaptchaToken?: string; country: string; hasAcceptedEducationalUseTerms: boolean; hasAcceptedTermsAndConditions: boolean; } export interface CreateClassroomUserRequest extends BaseUserRequest { schoolName: string; password: string; type: UserType.classroomUser; recaptchaToken?: string; country: string; state: string; hasAcceptedEducationalUseTerms: boolean; hasAcceptedTermsAndConditions: boolean; ncesSchoolId?: string; } export interface CreateDistrictUserRequest extends BaseUserRequest { districtName: string; password: string; type: UserType.districtUser; recaptchaToken?: string; country: string; state: string; hasAcceptedEducationalUseTerms: boolean; hasAcceptedTermsAndConditions: boolean; ncesDistrictId: string; districtPilotInformation: DistrictPilotInformationRequest; } export declare enum UserType { webAppUser = "webAppUser", trialB2bUser = "trialB2bUser", classroomUser = "classroomUser", districtUser = "districtUser" } export interface DistrictPilotInformationRequest { usageFrequency: string; instructionalVideoSource: string; videoResourceBarriers: string[]; subjects: string[]; reason: string; }