/* 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 personal subscription with usage limits
* @export
* @interface PersonalOrganizationStatus
*/
export interface PersonalOrganizationStatus {
/**
* Subscription type of the organization
* @type {string}
* @memberof PersonalOrganizationStatus
*/
subscriptionType: PersonalOrganizationStatusSubscriptionTypeEnum;
/**
* Number of tokens used by the organization
* @type {number}
* @memberof PersonalOrganizationStatus
*/
tokensUsed: number;
/**
* Count of unprocessed feedback items
* @type {number}
* @memberof PersonalOrganizationStatus
*/
unprocessedFeedbackCount: number;
/**
* Whether the organization has remaining tokens
* @type {boolean}
* @memberof PersonalOrganizationStatus
*/
hasRemainingTokens: boolean;
/**
* Percentage of token allocation used (max 100%)
* @type {number}
* @memberof PersonalOrganizationStatus
*/
tokensPercentageUsed: number;
/**
* Number of tokens remaining in allocation
* @type {number}
* @memberof PersonalOrganizationStatus
*/
tokensRemaining: number;
/**
* Whether the organization has exceeded its token allowance
* @type {boolean}
* @memberof PersonalOrganizationStatus
*/
hasExceededTokenAllowance: boolean;
/**
* Whether the organization has exceeded its entity limit
* @type {boolean}
* @memberof PersonalOrganizationStatus
*/
isOverMaxEntities: boolean;
/**
* Number of entities remaining in allocation
* @type {number}
* @memberof PersonalOrganizationStatus
*/
remainingEntities: number;
/**
*
* @type {string}
* @memberof PersonalOrganizationStatus
*/
id: string;
/**
* Name of the organisation
* @type {string}
* @memberof PersonalOrganizationStatus
*/
name: string;
/**
* Stripe customer ID for billing
* @type {string}
* @memberof PersonalOrganizationStatus
*/
stripeCustomerId?: string;
/**
* Maximum number of tokens allowed per day
* @type {number}
* @memberof PersonalOrganizationStatus
*/
maxDailyTokens: number;
/**
* Maximum number of entities allowed
* @type {number}
* @memberof PersonalOrganizationStatus
*/
maxEntities: number;
/**
* Current count of entities created
* @type {number}
* @memberof PersonalOrganizationStatus
*/
entitiesCreatedCount: number;
/**
* URL to the organisation's homepage
* @type {string}
* @memberof PersonalOrganizationStatus
*/
homepageUrl?: string | null;
/**
* URL to the organisation's logo
* @type {string}
* @memberof PersonalOrganizationStatus
*/
logoUrl?: string | null;
/**
* Creation timestamp
* @type {string}
* @memberof PersonalOrganizationStatus
*/
createdAt: string;
/**
* Last update timestamp
* @type {string}
* @memberof PersonalOrganizationStatus
*/
updatedAt: string;
/**
* Status of the organisation
* @type {string}
* @memberof PersonalOrganizationStatus
*/
status: PersonalOrganizationStatusStatusEnum;
}
/**
* @export
*/
export const PersonalOrganizationStatusSubscriptionTypeEnum = {
Personal: 'PERSONAL',
Professional: 'PROFESSIONAL'
} as const;
export type PersonalOrganizationStatusSubscriptionTypeEnum = typeof PersonalOrganizationStatusSubscriptionTypeEnum[keyof typeof PersonalOrganizationStatusSubscriptionTypeEnum];
/**
* @export
*/
export const PersonalOrganizationStatusStatusEnum = {
Active: 'ACTIVE',
Archived: 'ARCHIVED'
} as const;
export type PersonalOrganizationStatusStatusEnum = typeof PersonalOrganizationStatusStatusEnum[keyof typeof PersonalOrganizationStatusStatusEnum];
/**
* Check if a given object implements the PersonalOrganizationStatus interface.
*/
export function instanceOfPersonalOrganizationStatus(value: object): value is PersonalOrganizationStatus {
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 (!('hasRemainingTokens' in value) || value['hasRemainingTokens'] === undefined) return false;
if (!('tokensPercentageUsed' in value) || value['tokensPercentageUsed'] === undefined) return false;
if (!('tokensRemaining' in value) || value['tokensRemaining'] === undefined) return false;
if (!('hasExceededTokenAllowance' in value) || value['hasExceededTokenAllowance'] === undefined) return false;
if (!('isOverMaxEntities' in value) || value['isOverMaxEntities'] === undefined) return false;
if (!('remainingEntities' in value) || value['remainingEntities'] === 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 PersonalOrganizationStatusFromJSON(json: any): PersonalOrganizationStatus {
return PersonalOrganizationStatusFromJSONTyped(json, false);
}
export function PersonalOrganizationStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): PersonalOrganizationStatus {
if (json == null) {
return json;
}
return {
'subscriptionType': json['subscriptionType'],
'tokensUsed': json['tokensUsed'],
'unprocessedFeedbackCount': json['unprocessedFeedbackCount'],
'hasRemainingTokens': json['hasRemainingTokens'],
'tokensPercentageUsed': json['tokensPercentageUsed'],
'tokensRemaining': json['tokensRemaining'],
'hasExceededTokenAllowance': json['hasExceededTokenAllowance'],
'isOverMaxEntities': json['isOverMaxEntities'],
'remainingEntities': json['remainingEntities'],
'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 PersonalOrganizationStatusToJSON(json: any): PersonalOrganizationStatus {
return PersonalOrganizationStatusToJSONTyped(json, false);
}
export function PersonalOrganizationStatusToJSONTyped(value?: PersonalOrganizationStatus | null, ignoreDiscriminator: boolean = false): any {
if (value == null) {
return value;
}
return {
'subscriptionType': value['subscriptionType'],
'tokensUsed': value['tokensUsed'],
'unprocessedFeedbackCount': value['unprocessedFeedbackCount'],
'hasRemainingTokens': value['hasRemainingTokens'],
'tokensPercentageUsed': value['tokensPercentageUsed'],
'tokensRemaining': value['tokensRemaining'],
'hasExceededTokenAllowance': value['hasExceededTokenAllowance'],
'isOverMaxEntities': value['isOverMaxEntities'],
'remainingEntities': value['remainingEntities'],
'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'],
};
}