import { CollectionTypes } from "./CollectionTypes";
/**
* @typedef {Object} ProjectResponse
* @property {string} status httpStatusCode for project data response
* @property {ProjectResponseData} data Project data
*/
export interface ProjectResponse {
status: string;
data: ProjectResponseData[] | ProjectResponseData | undefined;
}
/**
* @typedef {Object} ProjectResponseData
* @property {id} id unique ID of project
* @property {string} createdAt Created time of project
* @property {string} updatedAt Updated time of project
* @property {string} name Project name
* @property {string} companyName Name of the company for partners / third party
* @property {string} contactEmail Contact email to receive notifications regarding project
* @property {string} collectionLimitExpiresAt Expiration date for collection limit
* @property {string} collectionMonthlyLimit Maximum number of collections allowed to be created per month
* @property {string} collectionRemaining Remaining number of collections allowed to create
* @property {string} publicId unique public ID (UUID) to identify the project
* @property {string} starkKey stark key of the owner of the project
*/
export interface ProjectResponseData {
id: number,
createdAt: string,
updatedAt: string,
name: string,
companyName: string,
contactEmail: string,
collectionLimitExpiresAt?: string | null,
collectionMonthlyLimit?: number,
collectionRemaining?: number,
publicId?: string,
starkKey: string
}
/**
* @typedef {Object} CollectionListResponseData
* @property {id} id unique ID of project
* @property {string} createdAt Created time of project
* @property {string} updatedAt Updated time of project
* @property {string} name Project name which would be coupled along with the your Collection
* @property {string} companyName Name of the company for partners / third party which consumed Myria services
* @property {string} contactEmail The email information for partners
* @property {string} collectionLimitExpiresAt The email information for partners
* @property {string} collectionMonthlyLimit Maximum number of collections allow to be created per month
* @property {string} collectionRemaining Remaining number of collection allowed to create
* @property {string} publicId unique public ID (UUID) to identify the project
* @property {string} starkKey stark key of the owner of the project
* @property {CollectionTypes[]} collections List of the collection data belong to this project
*/
export interface CollectionListResponseData extends ProjectResponseData {
collections: CollectionTypes[];
}
/**
* @typedef {Object} CreateProjectParams
* @property {string} name Project name which would be coupled along with your Collection
* @property {string} companyName Name of the company for partners / third party
* @property {string} contactEmail The contact email to use for notifications regarding project
* @property {string} starkKey Stark key of registered wallet user
*/
export interface CreateProjectParams {
name: string;
companyName: string;
contactEmail: string;
starkKey: string;
}
/**
* @typedef {Object} CreateProjectParamsByAPIKey
* @property {string} name Name of the project
* @property {string} companyName Name of the company for partners / third party
* @property {string} contactEmail Contact email
* @property {string} apiKey Partner's API key
* @property {string} myriaUserID Unique ID (uuid) of myria user
*/
export interface CreateProjectParamsByAPIKey {
name: string;
companyName: string;
contactEmail: string;
apiKey: string;
myriaUserID: string;
}
/**
* @typedef {Object} UpdateProjectParams
* @property {string} id unique ID of project
* @property {string} name Project name
* @property {string} companyName Name of the company for partners / third party
* @property {string} contactEmail Contact email address for notifications
* @property {string} starkKey Stark key of registered wallet user
*/
export interface UpdateProjectParams {
id: number;
name: string;
companyName: string;
contactEmail: string;
starkKey: string;
}
/**
* @typedef {Object} UpdateProjectByAPIKey
* @property {string} id unique ID of project
* @property {string} name Project name
* @property {string} companyName Name of the company for partners / third party
* @property {string} contactEmail Contact email address for notifications
* @property {string} apiKey Partner's API key
* @property {string} myriaUserID Unique ID (uuid) of myria user
*/
export interface UpdateProjectByAPIKey {
id: number;
name: string;
companyName: string;
contactEmail: string;
apiKey: string;
myriaUserID: string;
}
Source