UNPKG

@gftdcojp/gftd-orm

Version:

Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture

73 lines 2.3 kB
/** * FieldType 定義 - Drizzle ORM ライクな DSL */ export interface FieldDefinition { type: string; nullable: boolean; primaryKey: boolean; default?: any; logicalType?: string; } export declare class BaseFieldType { protected definition: FieldDefinition; constructor(type: string, logicalType?: string); notNull(): this; primaryKey(): this; withDefault(defaultValue: any): this; getDefinition(): FieldDefinition; toAvroType(): string | string[] | any; } export declare class StringFieldType extends BaseFieldType { constructor(); } export declare class IntFieldType extends BaseFieldType { constructor(); } export declare class LongFieldType extends BaseFieldType { constructor(); } export declare class DoubleFieldType extends BaseFieldType { constructor(); } export declare class BooleanFieldType extends BaseFieldType { constructor(); } export declare class UuidFieldType extends BaseFieldType { constructor(); } export declare class TimestampFieldType extends BaseFieldType { constructor(); } export declare class DateFieldType extends BaseFieldType { constructor(); } export declare class TimeFieldType extends BaseFieldType { constructor(); } export declare class DecimalFieldType extends BaseFieldType { constructor(precision?: number, scale?: number); } export declare class ArrayFieldType extends BaseFieldType { constructor(itemType: BaseFieldType); } export declare class MapFieldType extends BaseFieldType { constructor(valueType: BaseFieldType); } /** * FieldType エクスポート - 設計案の通り(各フィールドは新しいインスタンスを返す) */ export declare const FieldType: { readonly STRING: StringFieldType; readonly INT: IntFieldType; readonly LONG: LongFieldType; readonly DOUBLE: DoubleFieldType; readonly BOOLEAN: BooleanFieldType; readonly UUID: UuidFieldType; readonly TIMESTAMP: TimestampFieldType; readonly DATE: DateFieldType; readonly TIME: TimeFieldType; readonly DECIMAL: (precision?: number, scale?: number) => DecimalFieldType; readonly ARRAY: (itemType: BaseFieldType) => ArrayFieldType; readonly MAP: (valueType: BaseFieldType) => MapFieldType; }; //# sourceMappingURL=field-types.d.ts.map