{"version":3,"file":"unique-constraint.cjs","names":["TableName","entityKind"],"sources":["../../src/singlestore-core/unique-constraint.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TableName } from '~/table.utils.ts';\nimport type { SingleStoreColumn } from './columns/index.ts';\nimport type { SingleStoreTable } from './table.ts';\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport function uniqueKeyName(table: SingleStoreTable, columns: string[]) {\n\treturn `${table[TableName]}_${columns.join('_')}_unique`;\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: SingleStoreColumn[];\n\n\tconstructor(\n\t\tcolumns: SingleStoreColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: SingleStoreTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SingleStoreUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [SingleStoreColumn, ...SingleStoreColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'SingleStoreUniqueConstraint';\n\n\treadonly columns: SingleStoreColumn[];\n\treadonly name: string;\n\treadonly nullsNotDistinct: boolean = false;\n\treadonly isNameExplicit: boolean;\n\n\tconstructor(readonly table: SingleStoreTable, columns: SingleStoreColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t\tthis.isNameExplicit = !!name;\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n"],"mappings":";;;;;;AAKA,SAAgB,OAAO,MAA0C;AAChE,QAAO,IAAI,0BAA0B,KAAK;;AAG3C,SAAgB,cAAc,OAAyB,SAAmB;AACzE,QAAO,GAAG,MAAMA,4BAAW,GAAG,QAAQ,KAAK,IAAI,CAAC;;AAGjD,IAAa,0BAAb,MAAqC;CACpC,QAAiBC,0BAAsB;;CAGvC;CAEA,YACC,SACA,AAAQ,MACP;EADO;AAER,OAAK,UAAU;;;CAIhB,MAAM,OAA2C;AAChD,SAAO,IAAI,iBAAiB,OAAO,KAAK,SAAS,KAAK,KAAK;;;AAI7D,IAAa,4BAAb,MAAuC;CACtC,QAAiBA,0BAAsB;;CAGvC;CAEA,YACC,MACC;AACD,OAAK,OAAO;;CAGb,GAAG,GAAG,SAAsD;AAC3D,SAAO,IAAI,wBAAwB,SAAS,KAAK,KAAK;;;AAIxD,IAAa,mBAAb,MAA8B;CAC7B,QAAiBA,0BAAsB;CAEvC,AAAS;CACT,AAAS;CACT,AAAS,mBAA4B;CACrC,AAAS;CAET,YAAY,AAAS,OAAyB,SAA8B,MAAe;EAAtE;AACpB,OAAK,UAAU;AACf,OAAK,OAAO,QAAQ,cAAc,KAAK,OAAO,KAAK,QAAQ,KAAK,WAAW,OAAO,KAAK,CAAC;AACxF,OAAK,iBAAiB,CAAC,CAAC;;CAGzB,UAAU;AACT,SAAO,KAAK"}