@spinajs/orm 1.2.26 → 1.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/lib/builders.js +7 -2
  2. package/lib/builders.js.map +1 -1
  3. package/lib/decorators.js +9 -9
  4. package/lib/decorators.js.map +1 -1
  5. package/lib/driver.d.ts +2 -0
  6. package/lib/driver.js +5 -0
  7. package/lib/driver.js.map +1 -1
  8. package/lib/log-common/src/index.d.ts +180 -0
  9. package/lib/log-common/src/index.js +49 -0
  10. package/lib/log-common/src/index.js.map +1 -0
  11. package/lib/model.d.ts +3 -3
  12. package/lib/orm/src/builders.d.ts +429 -0
  13. package/lib/orm/src/builders.js +1082 -0
  14. package/lib/orm/src/builders.js.map +1 -0
  15. package/lib/orm/src/cli.d.ts +1 -0
  16. package/lib/orm/src/cli.js +2 -0
  17. package/lib/orm/src/cli.js.map +1 -0
  18. package/lib/orm/src/converters.d.ts +9 -0
  19. package/lib/orm/src/converters.js +22 -0
  20. package/lib/orm/src/converters.js.map +1 -0
  21. package/lib/orm/src/decorators.d.ts +122 -0
  22. package/lib/orm/src/decorators.js +380 -0
  23. package/lib/orm/src/decorators.js.map +1 -0
  24. package/lib/orm/src/driver.d.ts +77 -0
  25. package/lib/orm/src/driver.js +84 -0
  26. package/lib/orm/src/driver.js.map +1 -0
  27. package/lib/orm/src/enums.d.ts +111 -0
  28. package/lib/orm/src/enums.js +122 -0
  29. package/lib/orm/src/enums.js.map +1 -0
  30. package/lib/orm/src/exceptions.d.ts +6 -0
  31. package/lib/orm/src/exceptions.js +11 -0
  32. package/lib/orm/src/exceptions.js.map +1 -0
  33. package/lib/orm/src/hydrators.d.ts +16 -0
  34. package/lib/orm/src/hydrators.js +70 -0
  35. package/lib/orm/src/hydrators.js.map +1 -0
  36. package/lib/orm/src/index.d.ts +12 -0
  37. package/lib/orm/src/index.js +25 -0
  38. package/lib/orm/src/index.js.map +1 -0
  39. package/lib/orm/src/interfaces.d.ts +615 -0
  40. package/lib/orm/src/interfaces.js +186 -0
  41. package/lib/orm/src/interfaces.js.map +1 -0
  42. package/lib/orm/src/model.d.ts +135 -0
  43. package/lib/orm/src/model.js +449 -0
  44. package/lib/orm/src/model.js.map +1 -0
  45. package/lib/orm/src/orm.d.ts +59 -0
  46. package/lib/orm/src/orm.js +278 -0
  47. package/lib/orm/src/orm.js.map +1 -0
  48. package/lib/orm/src/relations.d.ts +96 -0
  49. package/lib/orm/src/relations.js +503 -0
  50. package/lib/orm/src/relations.js.map +1 -0
  51. package/lib/orm/src/statements.d.ts +132 -0
  52. package/lib/orm/src/statements.js +257 -0
  53. package/lib/orm/src/statements.js.map +1 -0
  54. package/lib/orm/src/types.d.ts +2 -0
  55. package/lib/orm/src/types.js +3 -0
  56. package/lib/orm/src/types.js.map +1 -0
  57. package/lib/orm/src/wrappers.d.ts +5 -0
  58. package/lib/orm/src/wrappers.js +13 -0
  59. package/lib/orm/src/wrappers.js.map +1 -0
  60. package/lib/orm.js +10 -7
  61. package/lib/orm.js.map +1 -1
  62. package/package.json +7 -7
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SetValueConverter = exports.DatetimeValueConverter = exports.ValueConverter = exports.GroupByQueryCompiler = exports.OrderByQueryCompiler = exports.ColumnQueryCompiler = exports.TableQueryCompiler = exports.OnDuplicateQueryCompiler = exports.InsertQueryCompiler = exports.UpdateQueryCompiler = exports.DeleteQueryCompiler = exports.ForeignKeyQueryCompiler = exports.IndexQueryCompiler = exports.JoinQueryCompiler = exports.SelectQueryCompiler = exports.RecursiveQueryCompiler = exports.OrmMigration = exports.RelationType = exports.MigrationTransactionMode = exports.ReferentialAction = exports.InsertBehaviour = exports.QueryContext = void 0;
10
+ const di_1 = require("@spinajs/di");
11
+ const exceptions_1 = require("@spinajs/exceptions");
12
+ var QueryContext;
13
+ (function (QueryContext) {
14
+ QueryContext[QueryContext["Insert"] = 0] = "Insert";
15
+ QueryContext[QueryContext["Select"] = 1] = "Select";
16
+ QueryContext[QueryContext["Update"] = 2] = "Update";
17
+ QueryContext[QueryContext["Delete"] = 3] = "Delete";
18
+ QueryContext[QueryContext["Schema"] = 4] = "Schema";
19
+ QueryContext[QueryContext["Transaction"] = 5] = "Transaction";
20
+ })(QueryContext = exports.QueryContext || (exports.QueryContext = {}));
21
+ var InsertBehaviour;
22
+ (function (InsertBehaviour) {
23
+ /**
24
+ * On duplicate entry ignore & fetch only model primary key
25
+ */
26
+ InsertBehaviour[InsertBehaviour["OnDuplicateIgnore"] = 0] = "OnDuplicateIgnore";
27
+ /**
28
+ * On duplicate update entry ( when unique constraint is hit update db from model data)
29
+ */
30
+ InsertBehaviour[InsertBehaviour["OnDuplicateUpdate"] = 1] = "OnDuplicateUpdate";
31
+ /**
32
+ * Throw error if model hits constraint ( primary or unique keys )
33
+ */
34
+ InsertBehaviour[InsertBehaviour["None"] = 2] = "None";
35
+ })(InsertBehaviour = exports.InsertBehaviour || (exports.InsertBehaviour = {}));
36
+ /**
37
+ * Foreign key referential actions
38
+ */
39
+ var ReferentialAction;
40
+ (function (ReferentialAction) {
41
+ ReferentialAction["Cascade"] = "CASCADE";
42
+ ReferentialAction["SetNull"] = "SET NULL";
43
+ ReferentialAction["Restrict"] = "RESTRICT";
44
+ ReferentialAction["NoAction"] = "NO ACTION";
45
+ ReferentialAction["SetDefault"] = "SET DEFAULT";
46
+ })(ReferentialAction = exports.ReferentialAction || (exports.ReferentialAction = {}));
47
+ /**
48
+ * Transaction mode when migration DB
49
+ */
50
+ var MigrationTransactionMode;
51
+ (function (MigrationTransactionMode) {
52
+ /**
53
+ * Migration is run whithout transaction
54
+ */
55
+ MigrationTransactionMode[MigrationTransactionMode["None"] = 0] = "None";
56
+ /**
57
+ * On transaction for one migration - every migration has its own
58
+ */
59
+ MigrationTransactionMode[MigrationTransactionMode["PerMigration"] = 1] = "PerMigration";
60
+ })(MigrationTransactionMode = exports.MigrationTransactionMode || (exports.MigrationTransactionMode = {}));
61
+ var RelationType;
62
+ (function (RelationType) {
63
+ RelationType[RelationType["One"] = 0] = "One";
64
+ RelationType[RelationType["Many"] = 1] = "Many";
65
+ RelationType[RelationType["ManyToMany"] = 2] = "ManyToMany";
66
+ })(RelationType = exports.RelationType || (exports.RelationType = {}));
67
+ let OrmMigration = class OrmMigration {
68
+ };
69
+ OrmMigration = __decorate([
70
+ (0, di_1.NewInstance)()
71
+ ], OrmMigration);
72
+ exports.OrmMigration = OrmMigration;
73
+ /**
74
+ * Definitions of query compiler are needed for DI resolving
75
+ * ==========================================================
76
+ */
77
+ let RecursiveQueryCompiler = class RecursiveQueryCompiler {
78
+ };
79
+ RecursiveQueryCompiler = __decorate([
80
+ (0, di_1.NewInstance)()
81
+ ], RecursiveQueryCompiler);
82
+ exports.RecursiveQueryCompiler = RecursiveQueryCompiler;
83
+ let SelectQueryCompiler = class SelectQueryCompiler {
84
+ };
85
+ SelectQueryCompiler = __decorate([
86
+ (0, di_1.NewInstance)()
87
+ ], SelectQueryCompiler);
88
+ exports.SelectQueryCompiler = SelectQueryCompiler;
89
+ let JoinQueryCompiler = class JoinQueryCompiler {
90
+ };
91
+ JoinQueryCompiler = __decorate([
92
+ (0, di_1.NewInstance)()
93
+ ], JoinQueryCompiler);
94
+ exports.JoinQueryCompiler = JoinQueryCompiler;
95
+ let IndexQueryCompiler = class IndexQueryCompiler {
96
+ };
97
+ IndexQueryCompiler = __decorate([
98
+ (0, di_1.NewInstance)()
99
+ ], IndexQueryCompiler);
100
+ exports.IndexQueryCompiler = IndexQueryCompiler;
101
+ let ForeignKeyQueryCompiler = class ForeignKeyQueryCompiler {
102
+ };
103
+ ForeignKeyQueryCompiler = __decorate([
104
+ (0, di_1.NewInstance)()
105
+ ], ForeignKeyQueryCompiler);
106
+ exports.ForeignKeyQueryCompiler = ForeignKeyQueryCompiler;
107
+ let DeleteQueryCompiler = class DeleteQueryCompiler {
108
+ };
109
+ DeleteQueryCompiler = __decorate([
110
+ (0, di_1.NewInstance)()
111
+ ], DeleteQueryCompiler);
112
+ exports.DeleteQueryCompiler = DeleteQueryCompiler;
113
+ let UpdateQueryCompiler = class UpdateQueryCompiler {
114
+ };
115
+ UpdateQueryCompiler = __decorate([
116
+ (0, di_1.NewInstance)()
117
+ ], UpdateQueryCompiler);
118
+ exports.UpdateQueryCompiler = UpdateQueryCompiler;
119
+ let InsertQueryCompiler = class InsertQueryCompiler {
120
+ };
121
+ InsertQueryCompiler = __decorate([
122
+ (0, di_1.NewInstance)()
123
+ ], InsertQueryCompiler);
124
+ exports.InsertQueryCompiler = InsertQueryCompiler;
125
+ let OnDuplicateQueryCompiler = class OnDuplicateQueryCompiler {
126
+ };
127
+ OnDuplicateQueryCompiler = __decorate([
128
+ (0, di_1.NewInstance)()
129
+ ], OnDuplicateQueryCompiler);
130
+ exports.OnDuplicateQueryCompiler = OnDuplicateQueryCompiler;
131
+ let TableQueryCompiler = class TableQueryCompiler {
132
+ };
133
+ TableQueryCompiler = __decorate([
134
+ (0, di_1.NewInstance)()
135
+ ], TableQueryCompiler);
136
+ exports.TableQueryCompiler = TableQueryCompiler;
137
+ let ColumnQueryCompiler = class ColumnQueryCompiler {
138
+ };
139
+ ColumnQueryCompiler = __decorate([
140
+ (0, di_1.NewInstance)()
141
+ ], ColumnQueryCompiler);
142
+ exports.ColumnQueryCompiler = ColumnQueryCompiler;
143
+ let OrderByQueryCompiler = class OrderByQueryCompiler {
144
+ };
145
+ OrderByQueryCompiler = __decorate([
146
+ (0, di_1.NewInstance)()
147
+ ], OrderByQueryCompiler);
148
+ exports.OrderByQueryCompiler = OrderByQueryCompiler;
149
+ let GroupByQueryCompiler = class GroupByQueryCompiler {
150
+ };
151
+ GroupByQueryCompiler = __decorate([
152
+ (0, di_1.NewInstance)()
153
+ ], GroupByQueryCompiler);
154
+ exports.GroupByQueryCompiler = GroupByQueryCompiler;
155
+ class ValueConverter {
156
+ /**
157
+ * Converts value to database type
158
+ *
159
+ * @param value - value to convert
160
+ */
161
+ toDB(_value) {
162
+ throw new exceptions_1.MethodNotImplemented();
163
+ }
164
+ /**
165
+ * Converts value from database type eg. mysql timestamp to DateTime
166
+ *
167
+ * @param value - value to convert
168
+ */
169
+ fromDB(_value) {
170
+ throw new exceptions_1.MethodNotImplemented();
171
+ }
172
+ }
173
+ exports.ValueConverter = ValueConverter;
174
+ /**
175
+ * Converter for DATETIME field (eg. mysql datetime)
176
+ */
177
+ class DatetimeValueConverter extends ValueConverter {
178
+ }
179
+ exports.DatetimeValueConverter = DatetimeValueConverter;
180
+ /**
181
+ * Converter for set field (eg. mysql SET)
182
+ */
183
+ class SetValueConverter extends ValueConverter {
184
+ }
185
+ exports.SetValueConverter = SetValueConverter;
186
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AAMA,oCAAuD;AAEvD,oDAA2D;AAE3D,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,6DAAW,CAAA;AACb,CAAC,EAPW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAOvB;AAED,IAAY,eAeX;AAfD,WAAY,eAAe;IACzB;;OAEG;IACH,+EAAiB,CAAA;IAEjB;;OAEG;IACH,+EAAiB,CAAA;IAEjB;;OAEG;IACH,qDAAI,CAAA;AACN,CAAC,EAfW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAe1B;AAED;;GAEG;AACH,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,yCAAoB,CAAA;IACpB,0CAAqB,CAAA;IACrB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;AAC5B,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAED;;GAEG;AACH,IAAY,wBAUX;AAVD,WAAY,wBAAwB;IAClC;;OAEG;IACH,uEAAI,CAAA;IAEJ;;OAEG;IACH,uFAAY,CAAA;AACd,CAAC,EAVW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAUnC;AA6KD,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,6CAAG,CAAA;IACH,+CAAI,CAAA;IACJ,2DAAU,CAAA;AACZ,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAqLD,IAAsB,YAAY,GAAlC,MAAsB,YAAY;CAajC,CAAA;AAbqB,YAAY;IADjC,IAAA,gBAAW,GAAE;GACQ,YAAY,CAajC;AAbqB,oCAAY;AAgOlC;;;GAGG;AAEH,IAAsB,sBAAsB,GAA5C,MAAsB,sBAAsB;CAE3C,CAAA;AAFqB,sBAAsB;IAD3C,IAAA,gBAAW,GAAE;GACQ,sBAAsB,CAE3C;AAFqB,wDAAsB;AAI5C,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,iBAAiB,GAAvC,MAAsB,iBAAiB;CAEtC,CAAA;AAFqB,iBAAiB;IADtC,IAAA,gBAAW,GAAE;GACQ,iBAAiB,CAEtC;AAFqB,8CAAiB;AAKvC,IAAsB,kBAAkB,GAAxC,MAAsB,kBAAkB;CAEvC,CAAA;AAFqB,kBAAkB;IADvC,IAAA,gBAAW,GAAE;GACQ,kBAAkB,CAEvC;AAFqB,gDAAkB;AAKxC,IAAsB,uBAAuB,GAA7C,MAAsB,uBAAuB;CAE5C,CAAA;AAFqB,uBAAuB;IAD5C,IAAA,gBAAW,GAAE;GACQ,uBAAuB,CAE5C;AAFqB,0DAAuB;AAK7C,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,wBAAwB,GAA9C,MAAsB,wBAAwB;CAE7C,CAAA;AAFqB,wBAAwB;IAD7C,IAAA,gBAAW,GAAE;GACQ,wBAAwB,CAE7C;AAFqB,4DAAwB;AAK9C,IAAsB,kBAAkB,GAAxC,MAAsB,kBAAkB;CAEvC,CAAA;AAFqB,kBAAkB;IADvC,IAAA,gBAAW,GAAE;GACQ,kBAAkB,CAEvC;AAFqB,gDAAkB;AAKxC,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAmB;CAExC,CAAA;AAFqB,mBAAmB;IADxC,IAAA,gBAAW,GAAE;GACQ,mBAAmB,CAExC;AAFqB,kDAAmB;AAKzC,IAAsB,oBAAoB,GAA1C,MAAsB,oBAAoB;CAEzC,CAAA;AAFqB,oBAAoB;IADzC,IAAA,gBAAW,GAAE;GACQ,oBAAoB,CAEzC;AAFqB,oDAAoB;AAK1C,IAAsB,oBAAoB,GAA1C,MAAsB,oBAAoB;CAEzC,CAAA;AAFqB,oBAAoB;IADzC,IAAA,gBAAW,GAAE;GACQ,oBAAoB,CAEzC;AAFqB,oDAAoB;AAsC1C,MAAa,cAAc;IACzB;;;;OAIG;IACI,IAAI,CAAC,MAAW;QACrB,MAAM,IAAI,iCAAoB,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAW;QACvB,MAAM,IAAI,iCAAoB,EAAE,CAAC;IACnC,CAAC;CACF;AAlBD,wCAkBC;AAED;;GAEG;AACH,MAAa,sBAAuB,SAAQ,cAAc;CAAG;AAA7D,wDAA6D;AAE7D;;GAEG;AACH,MAAa,iBAAkB,SAAQ,cAAc;CAAG;AAAxD,8CAAwD"}
@@ -0,0 +1,135 @@
1
+ import { IModelDescrtiptor, InsertBehaviour } from './interfaces';
2
+ import { WhereFunction } from './types';
3
+ import { RawQuery, UpdateQueryBuilder, SelectQueryBuilder, InsertQueryBuilder } from './builders';
4
+ import { WhereOperators } from './enums';
5
+ export declare function extractModelDescriptor(targetOrForward: any): IModelDescrtiptor;
6
+ export declare class ModelBase {
7
+ /**
8
+ * Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
9
+ * db table attached, column information and others.
10
+ */
11
+ get ModelDescriptor(): IModelDescrtiptor;
12
+ get PrimaryKeyName(): string;
13
+ get PrimaryKeyValue(): any;
14
+ set PrimaryKeyValue(newVal: any);
15
+ /**
16
+ * Get all data from db
17
+ */
18
+ static all<T extends typeof ModelBase>(this: T, _page?: number, _perPage?: number): SelectQueryBuilder<Array<InstanceType<T>>>;
19
+ /**
20
+ * Inserts data to DB.
21
+ *
22
+ * @param _data - data to insert
23
+ */
24
+ static insert<T extends typeof ModelBase>(this: T, _data: InstanceType<T> | Partial<InstanceType<T>> | Array<InstanceType<T>> | Array<Partial<InstanceType<T>>>): Promise<void>;
25
+ /**
26
+ * Search entities in db
27
+ *
28
+ * @param column - column to search or function
29
+ * @param operator - boolean operator
30
+ * @param value - value to compare
31
+ */
32
+ static where<T extends typeof ModelBase>(this: T, _column: string | boolean | WhereFunction | RawQuery | object, _operator?: WhereOperators | any, _value?: any): SelectQueryBuilder<Array<InstanceType<T>>>;
33
+ /**
34
+ * Updates single or multiple records at once with provided value based on condition
35
+ *
36
+ * @param _data - data to set
37
+ */
38
+ static update<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): UpdateQueryBuilder;
39
+ /**
40
+ * Tries to find all models with given primary keys
41
+ */
42
+ static find<T extends typeof ModelBase>(this: T, _pks: any[]): Promise<Array<InstanceType<T>>>;
43
+ /**
44
+ * Tries to find all models in db. If not all exists, throws exception
45
+ */
46
+ static findOrFail<T extends typeof ModelBase>(this: T, _pks: any[]): Promise<Array<InstanceType<T>>>;
47
+ /**
48
+ * gets model by specified pk, if not exists, returns null
49
+ *
50
+ */
51
+ static get<T extends typeof ModelBase>(this: T, _pk: any): Promise<Array<InstanceType<T>>>;
52
+ /**
53
+ * Finds model by specified pk. If model not exists in db throws exception
54
+ *
55
+ */
56
+ static getOrFail<T extends typeof ModelBase>(this: T, _pk: any): Promise<Array<InstanceType<T>>>;
57
+ /**
58
+ *
59
+ * Checks if model with pk key or unique fields exists and if not creates one AND NOT save in db
60
+ * NOTE: it checks for unique fields constraint
61
+ */
62
+ static getOrNew<T extends typeof ModelBase>(this: T, _pk?: any, _data?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
63
+ /**
64
+ * Creates raw query on this model. used for quering db for partial data or to perform some kind of operations
65
+ * that dont need full ORM model to involve
66
+ */
67
+ static query<T>(this: T): SelectQueryBuilder<T>;
68
+ /**
69
+ *
70
+ * Checks if model with pk key / unique fields exists and if not creates one and saves to db
71
+ * NOTE: it checks for unique fields too.
72
+ *
73
+ * @param data - model width data to check
74
+ */
75
+ static getOrCreate<T extends typeof ModelBase>(this: T, _pk: any, _data?: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
76
+ /**
77
+ * Creates new model & saves is to db
78
+ *
79
+ * @param data - initial model data
80
+ */
81
+ static create<T extends typeof ModelBase>(this: T, _data: Partial<InstanceType<T>>): Promise<InstanceType<T>>;
82
+ /**
83
+ * Deletes model from db
84
+ *
85
+ * @param pk - primary key
86
+ */
87
+ static destroy(_pk?: any | any[]): Promise<void>;
88
+ constructor(data?: any);
89
+ /**
90
+ * Fills model with data. It only fills properties that exists in database
91
+ *
92
+ * @param data - data to fill
93
+ */
94
+ hydrate(data: Partial<this>): void;
95
+ /**
96
+ * Extracts all data from model. It takes only properties that exists in DB
97
+ */
98
+ dehydrate(): Partial<this>;
99
+ /**
100
+ * deletes enitt from db. If model have SoftDelete decorator, model is marked as deleted
101
+ */
102
+ destroy(): Promise<void>;
103
+ update(): Promise<void>;
104
+ /**
105
+ * Save all changes to db. It creates new entry id db or updates existing one if
106
+ * primary key exists
107
+ */
108
+ insert(insertBehaviour?: InsertBehaviour): Promise<void>;
109
+ /**
110
+ * Gets model data from database and returns as fresh instance.
111
+ */
112
+ fresh(): Promise<this>;
113
+ /**
114
+ * sets default values for model. values are taken from DB default column prop
115
+ */
116
+ protected setDefaults(): void;
117
+ }
118
+ export declare const MODEL_STATIC_MIXINS: {
119
+ query(): SelectQueryBuilder;
120
+ where(column: string | boolean | WhereFunction | RawQuery | {}, operator?: WhereOperators | any, value?: any): SelectQueryBuilder;
121
+ update<T extends typeof ModelBase>(data: Partial<InstanceType<T>>): UpdateQueryBuilder;
122
+ all(page: number, perPage: number): SelectQueryBuilder;
123
+ /**
124
+ * Try to insert new value
125
+ */
126
+ insert<T_1 extends typeof ModelBase>(this: T_1, data: InstanceType<T_1> | Partial<InstanceType<T_1>> | InstanceType<T_1>[] | Partial<InstanceType<T_1>>[]): InsertQueryBuilder;
127
+ find<T_2 extends typeof ModelBase>(this: T_2, pks: any[]): Promise<InstanceType<T_2>[]>;
128
+ findOrFail<T_3 extends typeof ModelBase>(this: T_3, pks: any[]): Promise<InstanceType<T_3>[]>;
129
+ get<T_4 extends typeof ModelBase>(this: T_4, pk: any): Promise<InstanceType<T_4>>;
130
+ getOrFail<T_5 extends typeof ModelBase>(this: T_5, pk: any): Promise<InstanceType<T_5>>;
131
+ destroy(pks: any | any[]): Promise<void>;
132
+ create<T_6 extends typeof ModelBase>(this: T_6, data: Partial<InstanceType<T_6>>): Promise<InstanceType<T_6>>;
133
+ getOrCreate<T_7 extends typeof ModelBase>(this: T_7, pk: any, data: Partial<InstanceType<T_7>>): Promise<InstanceType<T_7>>;
134
+ getOrNew<T_8 extends typeof ModelBase>(this: T_8, pk: any, data?: Partial<InstanceType<T_8>>): Promise<InstanceType<T_8>>;
135
+ };