{"version":3,"file":"real.cjs","names":["MySqlColumnBuilderWithAutoIncrement","entityKind","MySqlColumnWithAutoIncrement"],"sources":["../../../src/mysql-core/columns/real.ts"],"sourcesContent":["import type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MySqlTable } from '~/mysql-core/table.ts';\nimport { getColumnNameAndConfig } from '~/utils.ts';\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from './common.ts';\n\nexport class MySqlRealBuilder extends MySqlColumnBuilderWithAutoIncrement<\n\t{\n\t\tdataType: 'number double';\n\t\tdata: number;\n\t\tdriverParam: number | string;\n\t},\n\tMySqlRealConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlRealBuilder';\n\n\tconstructor(name: string, config: MySqlRealConfig | undefined) {\n\t\tsuper(name, 'number double', 'MySqlReal');\n\t\tthis.config.precision = config?.precision;\n\t\tthis.config.scale = config?.scale;\n\t}\n\n\t/** @internal */\n\toverride build(table: MySqlTable) {\n\t\treturn new MySqlReal(table, this.config as any);\n\t}\n}\n\nexport class MySqlReal<T extends ColumnBaseConfig<'number double'>> extends MySqlColumnWithAutoIncrement<\n\tT,\n\tMySqlRealConfig\n> {\n\tstatic override readonly [entityKind]: string = 'MySqlReal';\n\n\t/** @internal */\n\toverride readonly codec = 'real';\n\n\tprecision: number | undefined = this.config.precision;\n\tscale: number | undefined = this.config.scale;\n\n\tgetSQLType(): string {\n\t\tif (this.precision !== undefined && this.scale !== undefined) {\n\t\t\treturn `real(${this.precision}, ${this.scale})`;\n\t\t} else if (this.precision === undefined) {\n\t\t\treturn 'real';\n\t\t} else {\n\t\t\treturn `real(${this.precision})`;\n\t\t}\n\t}\n}\n\nexport interface MySqlRealConfig {\n\tprecision?: number;\n\tscale?: number;\n}\n\nexport function real(\n\tconfig?: MySqlRealConfig,\n): MySqlRealBuilder;\nexport function real(\n\tname: string,\n\tconfig?: MySqlRealConfig,\n): MySqlRealBuilder;\nexport function real(a?: string | MySqlRealConfig, b: MySqlRealConfig = {}) {\n\tconst { name, config } = getColumnNameAndConfig<MySqlRealConfig>(a, b);\n\treturn new MySqlRealBuilder(name, config);\n}\n"],"mappings":";;;;;;;AAMA,IAAa,mBAAb,cAAsCA,sEAOpC;CACD,QAA0BC,0BAAsB;CAEhD,YAAY,MAAc,QAAqC;AAC9D,QAAM,MAAM,iBAAiB,YAAY;AACzC,OAAK,OAAO,YAAY,QAAQ;AAChC,OAAK,OAAO,QAAQ,QAAQ;;;CAI7B,AAAS,MAAM,OAAmB;AACjC,SAAO,IAAI,UAAU,OAAO,KAAK,OAAc;;;AAIjD,IAAa,YAAb,cAA4EC,+DAG1E;CACD,QAA0BD,0BAAsB;;CAGhD,AAAkB,QAAQ;CAE1B,YAAgC,KAAK,OAAO;CAC5C,QAA4B,KAAK,OAAO;CAExC,aAAqB;AACpB,MAAI,KAAK,cAAc,UAAa,KAAK,UAAU,OAClD,QAAO,QAAQ,KAAK,UAAU,IAAI,KAAK,MAAM;WACnC,KAAK,cAAc,OAC7B,QAAO;MAEP,QAAO,QAAQ,KAAK,UAAU;;;AAiBjC,SAAgB,KAAK,GAA8B,IAAqB,EAAE,EAAE;CAC3E,MAAM,EAAE,MAAM,kDAAmD,GAAG,EAAE;AACtE,QAAO,IAAI,iBAAiB,MAAM,OAAO"}