/* tslint:disable */
/* eslint-disable */
/**
 * Screening AI API Docs
 * API Documentation for Screening AI
 *
 * The version of the OpenAPI document: 1.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { mapValues } from '../runtime';
/**
 * 
 * @export
 * @interface CreatePlatformScreeningFormSubmissionDto
 */
export interface CreatePlatformScreeningFormSubmissionDto {
    /**
     * Organisation ID
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    orgId: string;
    /**
     * Organisation Alias
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    orgAlias: string;
    /**
     * Email
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    email: string;
    /**
     * First Name
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    firstName: string;
    /**
     * Last Name
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    lastName: string;
    /**
     * Phone Number
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    phoneNumber: string;
    /**
     * Screening Job ID
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    screeningJobId: string;
    /**
     * Chat
     * @type {Array<string>}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    chat: Array<string>;
    /**
     * Created At
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    createdAt: string;
    /**
     * Status
     * @type {string}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    status: string;
    /**
     * Upvotes
     * @type {Array<string>}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    upvotes: Array<string>;
    /**
     * Is Viewed
     * @type {boolean}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    isViewed: boolean;
    /**
     * Is Private
     * @type {boolean}
     * @memberof CreatePlatformScreeningFormSubmissionDto
     */
    isPrivate: boolean;
}

/**
 * Check if a given object implements the CreatePlatformScreeningFormSubmissionDto interface.
 */
export function instanceOfCreatePlatformScreeningFormSubmissionDto(value: object): value is CreatePlatformScreeningFormSubmissionDto {
    if (!('orgId' in value) || value['orgId'] === undefined) return false;
    if (!('orgAlias' in value) || value['orgAlias'] === undefined) return false;
    if (!('email' in value) || value['email'] === undefined) return false;
    if (!('firstName' in value) || value['firstName'] === undefined) return false;
    if (!('lastName' in value) || value['lastName'] === undefined) return false;
    if (!('phoneNumber' in value) || value['phoneNumber'] === undefined) return false;
    if (!('screeningJobId' in value) || value['screeningJobId'] === undefined) return false;
    if (!('chat' in value) || value['chat'] === undefined) return false;
    if (!('createdAt' in value) || value['createdAt'] === undefined) return false;
    if (!('status' in value) || value['status'] === undefined) return false;
    if (!('upvotes' in value) || value['upvotes'] === undefined) return false;
    if (!('isViewed' in value) || value['isViewed'] === undefined) return false;
    if (!('isPrivate' in value) || value['isPrivate'] === undefined) return false;
    return true;
}

export function CreatePlatformScreeningFormSubmissionDtoFromJSON(json: any): CreatePlatformScreeningFormSubmissionDto {
    return CreatePlatformScreeningFormSubmissionDtoFromJSONTyped(json, false);
}

export function CreatePlatformScreeningFormSubmissionDtoFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreatePlatformScreeningFormSubmissionDto {
    if (json == null) {
        return json;
    }
    return {
        
        'orgId': json['orgId'],
        'orgAlias': json['orgAlias'],
        'email': json['email'],
        'firstName': json['firstName'],
        'lastName': json['lastName'],
        'phoneNumber': json['phoneNumber'],
        'screeningJobId': json['screeningJobId'],
        'chat': json['chat'],
        'createdAt': json['createdAt'],
        'status': json['status'],
        'upvotes': json['upvotes'],
        'isViewed': json['isViewed'],
        'isPrivate': json['isPrivate'],
    };
}

export function CreatePlatformScreeningFormSubmissionDtoToJSON(json: any): CreatePlatformScreeningFormSubmissionDto {
    return CreatePlatformScreeningFormSubmissionDtoToJSONTyped(json, false);
}

export function CreatePlatformScreeningFormSubmissionDtoToJSONTyped(value?: CreatePlatformScreeningFormSubmissionDto | null, ignoreDiscriminator: boolean = false): any {
    if (value == null) {
        return value;
    }

    return {
        
        'orgId': value['orgId'],
        'orgAlias': value['orgAlias'],
        'email': value['email'],
        'firstName': value['firstName'],
        'lastName': value['lastName'],
        'phoneNumber': value['phoneNumber'],
        'screeningJobId': value['screeningJobId'],
        'chat': value['chat'],
        'createdAt': value['createdAt'],
        'status': value['status'],
        'upvotes': value['upvotes'],
        'isViewed': value['isViewed'],
        'isPrivate': value['isPrivate'],
    };
}

