@mathrunet/masamune
Version:
Manages packages for the server portion (NodeJS) of the Masamune framework.
459 lines (458 loc) • 11.8 kB
TypeScript
import * as firestore from "firebase-admin/firestore";
import { DocumentModel } from "../exntensions/firestore.extension";
/**
* The source of ModelFieldValue.
*
* ModelFieldValueのソース。
*/
export type ModelFieldValueSource = "user" | "server";
/**
* DynamicMap interface.
*
* DynamicMapのインターフェース。
*/
export type DynamicMap = {
[key: string]: any;
};
/**
* DynamicList interface.
*
* DynamicListのインターフェース。
*/
export type DynamicList = any[];
/**
* ModelWhere interface.
*
* ModelWhereのインターフェース。
*/
export type ModelFieldValueWhere = {
[field: string]: any;
} | undefined;
/**
* ModelCondition interface.
*
* ModelConditionのインターフェース。
*/
export type ModelFieldValueCondition = {
[field: string]: any;
} | undefined;
/**
* Class for generating values for `ModelFieldValue` in katana_model.
*
* katana_modelの`ModelFieldValue`用の値を生成するためのクラス。
*/
export declare class ModelFieldValue {
constructor(type: string, source?: ModelFieldValueSource);
"@type": string;
"@source": ModelFieldValueSource;
}
/**
* ModelServerCommandBase interface.
*
* katana_modelの`ModelServerCommandBase`用のインターフェース。
*/
export declare class ModelServerCommandBase extends ModelFieldValue {
constructor({ command, publicParameters, privateParameters, source }: {
command: string;
publicParameters: {
[field: string]: any;
};
privateParameters: {
[field: string]: any;
};
source?: ModelFieldValueSource;
});
"@command": string;
"@public": {
[field: string]: any;
};
"@private": {
[field: string]: any;
};
/**
* Get the value of the command.
*
* コマンドの値を取得します。
*
* @returns The value of the command.
*/
value(): string;
}
/**
* ModelCounter interface.
*
* katana_modelの`ModelCounter`用のインターフェース。
*/
export declare class ModelCounter extends ModelFieldValue {
constructor(value: number, increment?: number, source?: ModelFieldValueSource);
"@increment": number;
"@value": number;
/**
* Get the value of the counter.
*
* カウンターの値を取得します。
*
* @returns The value of the counter.
*/
value(): number;
}
/**
* ModelTimestamp interface.
*
* katana_modelの`ModelTimestamp`用のインターフェース。
*/
export declare class ModelTimestamp extends ModelFieldValue {
constructor(time?: Date, source?: ModelFieldValueSource);
"@time": number;
/**
* Get the value of the timestamp.
*
* タイムスタンプの値を取得します。
*
* @returns
*/
value(): Date;
}
/**
* ModelDate interface.
*
* katana_modelの`ModelDate`用のインターフェース。
*/
export declare class ModelDate extends ModelFieldValue {
constructor(date?: Date, source?: ModelFieldValueSource);
"@time": number;
/**
* Get the value of the timestamp.
*
* タイムスタンプの値を取得します。
*
* @returns
*/
value(): Date;
}
/**
* ModelTime interface.
*
* katana_modelの`ModelTime`用のインターフェース。
*/
export declare class ModelTime extends ModelFieldValue {
constructor(time?: Date, source?: ModelFieldValueSource);
"@time": number;
/**
* Get the value of the timestamp.
*
* タイムスタンプの値を取得します。
*
* @returns
*/
value(): Date;
}
/**
* ModelTimestampRange interface.
*
* katana_modelの`ModelTimestampRange`用のインターフェース。
*/
export declare class ModelTimestampRange extends ModelFieldValue {
constructor(start?: Date, end?: Date, source?: ModelFieldValueSource);
"@start": number;
"@end": number;
/**
* Get the value of the timestamp.
*
* タイムスタンプの値を取得します。
*
* @returns
*/
value(): {
start: Date;
end: Date;
};
}
/**
* ModelDateRange interface.
*
* katana_modelの`ModelDateRange`用のインターフェース。
*/
export declare class ModelDateRange extends ModelFieldValue {
constructor(start?: Date, end?: Date, source?: ModelFieldValueSource);
"@start": number;
"@end": number;
/**
* Get the value of the timestamp.
*
* タイムスタンプの値を取得します。
*
* @returns
*/
value(): {
start: Date;
end: Date;
};
}
/**
* ModelTimeRange interface.
*
* katana_modelの`ModelTimeRange`用のインターフェース。
*/
export declare class ModelTimeRange extends ModelFieldValue {
constructor(start?: Date, end?: Date, source?: ModelFieldValueSource);
"@start": number;
"@end": number;
/**
* Get the value of the timestamp.
*
* タイムスタンプの値を取得します。
*
* @returns
*/
value(): {
start: Date;
end: Date;
};
}
/**
* ModelLocale interface.
*
* katana_modelの`ModelLocale`用のインターフェース。
*/
export declare class ModelLocale extends ModelFieldValue {
constructor(language: string, country?: string, source?: ModelFieldValueSource);
"@language": string;
"@country"?: string;
/**
* Get the value of the locale.
*
* ロケールの値を取得します。
*
* @returns The value of the locale.
*/
value(): string;
}
/**
* ModelLocalizedValue interface.
*
* katana_modelの`ModelLocalizedValue`用のインターフェース。
*/
export declare class ModelLocalizedValue extends ModelFieldValue {
constructor(localized: ModelLocalizedLocaleVaue[], source?: ModelFieldValueSource);
"@localized": ModelLocalizedLocaleVaue[];
/**
* Get the value of the localized value.
*
* ローカライズされた値の値を取得します。
*
* @returns The value of the localized value.
*/
value(): ModelLocalizedLocaleVaue[];
/**
* Get the value of the localized value for the specified locale.
*
* 指定されたロケールのローカライズされた値の値を取得します。
*
* @param locale The locale to get the value for.
* @returns The value of the localized value for the specified locale.
*/
get(locale: string): ModelLocalizedLocaleVaue | null;
}
/**
* The value of ModelLocalizedValue.
*
* ModelLocalizedValueの値。
*/
export declare class ModelLocalizedLocaleVaue {
constructor({ language, country, value }: {
language: string;
country?: string;
value: string | number | boolean | {
[field: string]: any;
} | string[] | number[] | boolean[];
});
language: string;
country?: string;
value: string | number | boolean | {
[field: string]: any;
} | string[] | number[] | boolean[];
}
/**
* ModelUri interface.
*
* katana_modelの`ModelUri`用のインターフェース。
*/
export declare class ModelUri extends ModelFieldValue {
constructor(uri: string, source?: ModelFieldValueSource);
"@uri": string;
/**
* Get the value of the uri.
*
* URIの値を取得します。
*
* @returns The value of the uri.
*/
value(): string;
}
/**
* ModelImageUri interface.
*
* katana_modelの`ModelImageUri`用のインターフェース。
*/
export declare class ModelImageUri extends ModelFieldValue {
constructor(uri: string, source?: ModelFieldValueSource);
"@uri": string;
/**
* Get the value of the uri.
*
* URIの値を取得します。
*
* @returns The value of the uri.
*/
value(): string;
}
/**
* ModelVideoUri interface.
*
* katana_modelの`ModelVideoUri`用のインターフェース。
*/
export declare class ModelVideoUri extends ModelFieldValue {
constructor(uri: string, source?: ModelFieldValueSource);
"@uri": string;
/**
* Get the value of the uri.
*
* URIの値を取得します。
*
* @returns The value of the uri.
*/
value(): string;
}
/**
* ModelSearch interface.
*
* katana_modelの`ModelSearch`用のインターフェース。
*/
export declare class ModelSearch extends ModelFieldValue {
constructor(list: string[], source?: ModelFieldValueSource);
"@list": string[];
/**
* Get the value of the search.
*
* 検索の値を取得します。
*
* @returns The value of the search.
*/
value(): string[];
}
/**
* ModelToken interface.
*
* katana_modelの`ModelToken`用のインターフェース。
*/
export declare class ModelToken extends ModelFieldValue {
constructor(list: string[], source?: ModelFieldValueSource);
"@list": string[];
/**
* Get the value of the token.
*
* トークンの値を取得します。
*
* @returns The value of the token.
*/
value(): string[];
}
/**
* ModelGeoValue interface.
*
* katana_modelの`ModelGeoValue`用のインターフェース。
*/
export declare class ModelGeoValue extends ModelFieldValue {
constructor(latitude: number, longitude: number, source?: ModelFieldValueSource);
"@latitude": number;
"@longitude": number;
/**
* Get the value of the geo value.
*
* 地理値の値を取得します。
*
* @returns The value of the geo value.
*/
value(): {
latitude: number;
longitude: number;
};
}
/**
* ModelVectorValue interface.
*
* katana_modelの`ModelVectorValue`用のインターフェース。
*/
export declare class ModelVectorValue extends ModelFieldValue {
constructor(vector: number[], source?: ModelFieldValueSource);
"@vector": number[];
/**
* Get the value of the vector value.
*
* ベクトル値の値を取得します。
*
* @returns The value of the vector value.
*/
value(): number[];
}
/**
* ModelRefBase interface.
*
* katana_modelの`ModelRefBase`用のインターフェース。
*/
export declare class ModelRefBase extends ModelFieldValue {
constructor(ref: string, doc?: firestore.DocumentReference | undefined, source?: ModelFieldValueSource);
"@ref": string;
"@doc": firestore.DocumentReference | undefined;
/**
* Get the value of the ref.
*
* リファレンスの値を取得します。
*
* @returns The value of the ref.
*/
value(): string;
/**
* Load the document.
*
* ドキュメントを読み込みます。
*
* @returns The value of the ref.
*/
load(): Promise<DocumentModel<firestore.DocumentData, firestore.DocumentData>>;
/**
* Save the document.
*
* ドキュメントを保存します。
*
* @param data The data to save.
* @param options The options to save.
* @returns The value of the ref.
*/
save(data: firestore.PartialWithFieldValue<firestore.DocumentData>, options: firestore.SetOptions): Promise<void>;
/**
* Delete the document.
*
* ドキュメントを削除します。
*
* @returns The value of the ref.
*/
delete(): Promise<void>;
/**
* Get the id of the ref.
*
* リファレンスのIDを取得します。
*
* @returns The id of the ref.
*/
get id(): string;
/**
* Get the ref of the document.
*
* ドキュメントのリファレンスを取得します。
*
* @returns The ref of the document.
*/
get ref(): firestore.DocumentReference | undefined;
}