/* tslint:disable */
/* eslint-disable */
/**
* Squad API
* API for managing Squad resources
*
* The version of the OpenAPI document: 1.4.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.js';
/**
* Organization status for professional subscription
* @export
* @interface ProfessionalOrganizationStatus
*/
export interface ProfessionalOrganizationStatus {
/**
* Subscription type of the organization
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
subscriptionType: ProfessionalOrganizationStatusSubscriptionTypeEnum;
/**
* Number of tokens used by the organization
* @type {number}
* @memberof ProfessionalOrganizationStatus
*/
tokensUsed: number;
/**
* Count of unprocessed feedback items
* @type {number}
* @memberof ProfessionalOrganizationStatus
*/
unprocessedFeedbackCount: number;
/**
*
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
id: string;
/**
* Name of the organisation
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
name: string;
/**
* Stripe customer ID for billing
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
stripeCustomerId?: string;
/**
* Maximum number of tokens allowed per day
* @type {number}
* @memberof ProfessionalOrganizationStatus
*/
maxDailyTokens: number;
/**
* Maximum number of entities allowed
* @type {number}
* @memberof ProfessionalOrganizationStatus
*/
maxEntities: number;
/**
* Current count of entities created
* @type {number}
* @memberof ProfessionalOrganizationStatus
*/
entitiesCreatedCount: number;
/**
* URL to the organisation's homepage
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
homepageUrl?: string | null;
/**
* URL to the organisation's logo
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
logoUrl?: string | null;
/**
* Creation timestamp
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
createdAt: string;
/**
* Last update timestamp
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
updatedAt: string;
/**
* Status of the organisation
* @type {string}
* @memberof ProfessionalOrganizationStatus
*/
status: ProfessionalOrganizationStatusStatusEnum;
}
/**
* @export
*/
export const ProfessionalOrganizationStatusSubscriptionTypeEnum = {
Personal: 'PERSONAL',
Professional: 'PROFESSIONAL'
} as const;
export type ProfessionalOrganizationStatusSubscriptionTypeEnum = typeof ProfessionalOrganizationStatusSubscriptionTypeEnum[keyof typeof ProfessionalOrganizationStatusSubscriptionTypeEnum];
/**
* @export
*/
export const ProfessionalOrganizationStatusStatusEnum = {
Active: 'ACTIVE',
Archived: 'ARCHIVED'
} as const;
export type ProfessionalOrganizationStatusStatusEnum = typeof ProfessionalOrganizationStatusStatusEnum[keyof typeof ProfessionalOrganizationStatusStatusEnum];
/**
* Check if a given object implements the ProfessionalOrganizationStatus interface.
*/
export function instanceOfProfessionalOrganizationStatus(value: object): value is ProfessionalOrganizationStatus {
if (!('subscriptionType' in value) || value['subscriptionType'] === undefined) return false;
if (!('tokensUsed' in value) || value['tokensUsed'] === undefined) return false;
if (!('unprocessedFeedbackCount' in value) || value['unprocessedFeedbackCount'] === undefined) return false;
if (!('id' in value) || value['id'] === undefined) return false;
if (!('name' in value) || value['name'] === undefined) return false;
if (!('maxDailyTokens' in value) || value['maxDailyTokens'] === undefined) return false;
if (!('maxEntities' in value) || value['maxEntities'] === undefined) return false;
if (!('entitiesCreatedCount' in value) || value['entitiesCreatedCount'] === undefined) return false;
if (!('createdAt' in value) || value['createdAt'] === undefined) return false;
if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;
if (!('status' in value) || value['status'] === undefined) return false;
return true;
}
export function ProfessionalOrganizationStatusFromJSON(json: any): ProfessionalOrganizationStatus {
return ProfessionalOrganizationStatusFromJSONTyped(json, false);
}
export function ProfessionalOrganizationStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProfessionalOrganizationStatus {
if (json == null) {
return json;
}
return {
'subscriptionType': json['subscriptionType'],
'tokensUsed': json['tokensUsed'],
'unprocessedFeedbackCount': json['unprocessedFeedbackCount'],
'id': json['id'],
'name': json['name'],
'stripeCustomerId': json['stripeCustomerId'] == null ? undefined : json['stripeCustomerId'],
'maxDailyTokens': json['maxDailyTokens'],
'maxEntities': json['maxEntities'],
'entitiesCreatedCount': json['entitiesCreatedCount'],
'homepageUrl': json['homepageUrl'] == null ? undefined : json['homepageUrl'],
'logoUrl': json['logoUrl'] == null ? undefined : json['logoUrl'],
'createdAt': json['createdAt'],
'updatedAt': json['updatedAt'],
'status': json['status'],
};
}
export function ProfessionalOrganizationStatusToJSON(json: any): ProfessionalOrganizationStatus {
return ProfessionalOrganizationStatusToJSONTyped(json, false);
}
export function ProfessionalOrganizationStatusToJSONTyped(value?: ProfessionalOrganizationStatus | null, ignoreDiscriminator: boolean = false): any {
if (value == null) {
return value;
}
return {
'subscriptionType': value['subscriptionType'],
'tokensUsed': value['tokensUsed'],
'unprocessedFeedbackCount': value['unprocessedFeedbackCount'],
'id': value['id'],
'name': value['name'],
'stripeCustomerId': value['stripeCustomerId'],
'maxDailyTokens': value['maxDailyTokens'],
'maxEntities': value['maxEntities'],
'entitiesCreatedCount': value['entitiesCreatedCount'],
'homepageUrl': value['homepageUrl'],
'logoUrl': value['logoUrl'],
'createdAt': value['createdAt'],
'updatedAt': value['updatedAt'],
'status': value['status'],
};
}