/* tslint:disable */
/* eslint-disable */
/**
 * Ringer Business API
 * This API provides comprehensive endpoints for the Ringer Business system. It includes functionality for managing customer accounts, addresses, sites,  phone numbers, payments, users, and other business resources.  Operations typically require authentication and appropriate permissions. 
 *
 * The version of the OpenAPI document: 1.0.5
 * Contact: support@ringer.tel
 *
 * 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 SeatCore
 */
export interface SeatCore {
    /**
     * A descriptive name for the seat assignment.
     * @type {string}
     * @memberof SeatCore
     */
    name: string;
    /**
     * Identifier of the service template to use for provisioning this seat.
     * @type {number}
     * @memberof SeatCore
     */
    templateId: number;
    /**
     * Identifier of the user to whom this seat is assigned.
     * @type {number}
     * @memberof SeatCore
     */
    userId?: number | null;
}

/**
 * Check if a given object implements the SeatCore interface.
 */
export function instanceOfSeatCore(value: object): value is SeatCore {
    if (!('name' in value) || value['name'] === undefined) return false;
    if (!('templateId' in value) || value['templateId'] === undefined) return false;
    return true;
}

export function SeatCoreFromJSON(json: any): SeatCore {
    return SeatCoreFromJSONTyped(json, false);
}

export function SeatCoreFromJSONTyped(json: any, ignoreDiscriminator: boolean): SeatCore {
    if (json == null) {
        return json;
    }
    return {
        
        'name': json['name'],
        'templateId': json['template_id'],
        'userId': json['user_id'] == null ? undefined : json['user_id'],
    };
}

export function SeatCoreToJSON(json: any): SeatCore {
    return SeatCoreToJSONTyped(json, false);
}

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

    return {
        
        'name': value['name'],
        'template_id': value['templateId'],
        'user_id': value['userId'],
    };
}

