/* tslint:disable */
/* eslint-disable */
/**
 * OmsorgCore.Api
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * 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 FacilityResponse
 */
export interface FacilityResponse {
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    id?: string;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    name?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    crmStatus?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    facilityType?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    website?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    street?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    postalCode?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    city?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    country?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    billingStreet?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    billingPostalCode?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    billingCity?: string | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    billingCountry?: string | null;
    /**
     * 
     * @type {Date}
     * @memberof FacilityResponse
     */
    followUpDueDate?: Date | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    billingRate?: number | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    nightSurchargePercent?: number | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    saturdaySurchargePercent?: number | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    sundaySurchargePercent?: number | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    holidaySurchargePercent?: number | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    travelCostRate?: number | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    travelCostMode?: string | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    travelCostPerKm?: number | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    mealAllowanceRate?: number | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    minimumHours?: number | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    billingInterval?: string | null;
    /**
     * 
     * @type {number}
     * @memberof FacilityResponse
     */
    paymentTermDays?: number | null;
    /**
     * 
     * @type {string}
     * @memberof FacilityResponse
     */
    individualAgreements?: string | null;
}

/**
 * Check if a given object implements the FacilityResponse interface.
 */
export function instanceOfFacilityResponse(value: object): value is FacilityResponse {
    return true;
}

export function FacilityResponseFromJSON(json: any): FacilityResponse {
    return FacilityResponseFromJSONTyped(json, false);
}

export function FacilityResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): FacilityResponse {
    if (json == null) {
        return json;
    }
    return {
        
        'id': json['id'] == null ? undefined : json['id'],
        'name': json['name'] == null ? undefined : json['name'],
        'crmStatus': json['crmStatus'] == null ? undefined : json['crmStatus'],
        'facilityType': json['facilityType'] == null ? undefined : json['facilityType'],
        'website': json['website'] == null ? undefined : json['website'],
        'street': json['street'] == null ? undefined : json['street'],
        'postalCode': json['postalCode'] == null ? undefined : json['postalCode'],
        'city': json['city'] == null ? undefined : json['city'],
        'country': json['country'] == null ? undefined : json['country'],
        'billingStreet': json['billingStreet'] == null ? undefined : json['billingStreet'],
        'billingPostalCode': json['billingPostalCode'] == null ? undefined : json['billingPostalCode'],
        'billingCity': json['billingCity'] == null ? undefined : json['billingCity'],
        'billingCountry': json['billingCountry'] == null ? undefined : json['billingCountry'],
        'followUpDueDate': json['followUpDueDate'] == null ? undefined : (new Date(json['followUpDueDate'])),
        'billingRate': json['billingRate'] == null ? undefined : json['billingRate'],
        'nightSurchargePercent': json['nightSurchargePercent'] == null ? undefined : json['nightSurchargePercent'],
        'saturdaySurchargePercent': json['saturdaySurchargePercent'] == null ? undefined : json['saturdaySurchargePercent'],
        'sundaySurchargePercent': json['sundaySurchargePercent'] == null ? undefined : json['sundaySurchargePercent'],
        'holidaySurchargePercent': json['holidaySurchargePercent'] == null ? undefined : json['holidaySurchargePercent'],
        'travelCostRate': json['travelCostRate'] == null ? undefined : json['travelCostRate'],
        'travelCostMode': json['travelCostMode'] == null ? undefined : json['travelCostMode'],
        'travelCostPerKm': json['travelCostPerKm'] == null ? undefined : json['travelCostPerKm'],
        'mealAllowanceRate': json['mealAllowanceRate'] == null ? undefined : json['mealAllowanceRate'],
        'minimumHours': json['minimumHours'] == null ? undefined : json['minimumHours'],
        'billingInterval': json['billingInterval'] == null ? undefined : json['billingInterval'],
        'paymentTermDays': json['paymentTermDays'] == null ? undefined : json['paymentTermDays'],
        'individualAgreements': json['individualAgreements'] == null ? undefined : json['individualAgreements'],
    };
}

export function FacilityResponseToJSON(json: any): FacilityResponse {
    return FacilityResponseToJSONTyped(json, false);
}

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

    return {
        
        'id': value['id'],
        'name': value['name'],
        'crmStatus': value['crmStatus'],
        'facilityType': value['facilityType'],
        'website': value['website'],
        'street': value['street'],
        'postalCode': value['postalCode'],
        'city': value['city'],
        'country': value['country'],
        'billingStreet': value['billingStreet'],
        'billingPostalCode': value['billingPostalCode'],
        'billingCity': value['billingCity'],
        'billingCountry': value['billingCountry'],
        'followUpDueDate': value['followUpDueDate'] === null ? null : ((value['followUpDueDate'] as any)?.toISOString()),
        'billingRate': value['billingRate'],
        'nightSurchargePercent': value['nightSurchargePercent'],
        'saturdaySurchargePercent': value['saturdaySurchargePercent'],
        'sundaySurchargePercent': value['sundaySurchargePercent'],
        'holidaySurchargePercent': value['holidaySurchargePercent'],
        'travelCostRate': value['travelCostRate'],
        'travelCostMode': value['travelCostMode'],
        'travelCostPerKm': value['travelCostPerKm'],
        'mealAllowanceRate': value['mealAllowanceRate'],
        'minimumHours': value['minimumHours'],
        'billingInterval': value['billingInterval'],
        'paymentTermDays': value['paymentTermDays'],
        'individualAgreements': value['individualAgreements'],
    };
}

