/* tslint:disable */
/* eslint-disable */
/**
 * Tuix Services
 * Tuix Services API
 *
 * The version of the OpenAPI document: 1.0.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 { exists, mapValues } from '../runtime';
/**
 * 
 * @export
 * @interface ProjectUpdateDTO
 */
export interface ProjectUpdateDTO {
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    city?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    clientId?: string;
    /**
     * 
     * @type {boolean}
     * @memberof ProjectUpdateDTO
     */
    closed?: boolean;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    companyContactPerson: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    contactEmail?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    contactName?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    contactPhoneNumber?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    description?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    endDate?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    gitPrefix: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    githubOrganization?: string;
    /**
     * 
     * @type {number}
     * @memberof ProjectUpdateDTO
     */
    hourlyRate?: number;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    houseNumber?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    jiraOrganization?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    jiraPrefix: string;
    /**
     * 
     * @type {number}
     * @memberof ProjectUpdateDTO
     */
    paymentMonthDay?: number;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    postalCode?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    projectName?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    startDate?: string;
    /**
     * 
     * @type {string}
     * @memberof ProjectUpdateDTO
     */
    street?: string;
}

/**
 * Check if a given object implements the ProjectUpdateDTO interface.
 */
export function instanceOfProjectUpdateDTO(value: object): boolean {
    let isInstance = true;
    isInstance = isInstance && "companyContactPerson" in value;
    isInstance = isInstance && "gitPrefix" in value;
    isInstance = isInstance && "jiraPrefix" in value;

    return isInstance;
}

export function ProjectUpdateDTOFromJSON(json: any): ProjectUpdateDTO {
    return ProjectUpdateDTOFromJSONTyped(json, false);
}

export function ProjectUpdateDTOFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProjectUpdateDTO {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'city': !exists(json, 'city') ? undefined : json['city'],
        'clientId': !exists(json, 'clientId') ? undefined : json['clientId'],
        'closed': !exists(json, 'closed') ? undefined : json['closed'],
        'companyContactPerson': json['companyContactPerson'],
        'contactEmail': !exists(json, 'contactEmail') ? undefined : json['contactEmail'],
        'contactName': !exists(json, 'contactName') ? undefined : json['contactName'],
        'contactPhoneNumber': !exists(json, 'contactPhoneNumber') ? undefined : json['contactPhoneNumber'],
        'description': !exists(json, 'description') ? undefined : json['description'],
        'endDate': !exists(json, 'endDate') ? undefined : json['endDate'],
        'gitPrefix': json['gitPrefix'],
        'githubOrganization': !exists(json, 'githubOrganization') ? undefined : json['githubOrganization'],
        'hourlyRate': !exists(json, 'hourlyRate') ? undefined : json['hourlyRate'],
        'houseNumber': !exists(json, 'houseNumber') ? undefined : json['houseNumber'],
        'jiraOrganization': !exists(json, 'jiraOrganization') ? undefined : json['jiraOrganization'],
        'jiraPrefix': json['jiraPrefix'],
        'paymentMonthDay': !exists(json, 'paymentMonthDay') ? undefined : json['paymentMonthDay'],
        'postalCode': !exists(json, 'postalCode') ? undefined : json['postalCode'],
        'projectName': !exists(json, 'projectName') ? undefined : json['projectName'],
        'startDate': !exists(json, 'startDate') ? undefined : json['startDate'],
        'street': !exists(json, 'street') ? undefined : json['street'],
    };
}

export function ProjectUpdateDTOToJSON(value?: ProjectUpdateDTO | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'city': value.city,
        'clientId': value.clientId,
        'closed': value.closed,
        'companyContactPerson': value.companyContactPerson,
        'contactEmail': value.contactEmail,
        'contactName': value.contactName,
        'contactPhoneNumber': value.contactPhoneNumber,
        'description': value.description,
        'endDate': value.endDate,
        'gitPrefix': value.gitPrefix,
        'githubOrganization': value.githubOrganization,
        'hourlyRate': value.hourlyRate,
        'houseNumber': value.houseNumber,
        'jiraOrganization': value.jiraOrganization,
        'jiraPrefix': value.jiraPrefix,
        'paymentMonthDay': value.paymentMonthDay,
        'postalCode': value.postalCode,
        'projectName': value.projectName,
        'startDate': value.startDate,
        'street': value.street,
    };
}

