1 |
|
2 |
|
3 |
|
4 | declare namespace FxOrmAssociation {
|
5 | type AssociationType = 'extendsTo' | 'hasOne' | 'hasMany'
|
6 |
|
7 | |
8 |
|
9 |
|
10 |
|
11 |
|
12 | type AssociationKeyComputation = (model_name: string, idkey: string) => string | string
|
13 | interface AssociationDefinitionOptions {
|
14 | |
15 |
|
16 |
|
17 |
|
18 |
|
19 | name?: string;
|
20 | model?: FxOrmModel.Model;
|
21 | field?: string | FxOrmProperty.NormalizedPropertyHash
|
22 |
|
23 |
|
24 | __for_extension?: boolean;
|
25 | required?: boolean;
|
26 | reversed?: boolean;
|
27 | |
28 |
|
29 |
|
30 | accessor?: string;
|
31 | |
32 |
|
33 |
|
34 | reverseAccessor?: string;
|
35 | autoFetch?: boolean;
|
36 | autoFetchLimit?: number;
|
37 |
|
38 | getAccessor?: string;
|
39 | setAccessor?: string;
|
40 | hasAccessor?: string;
|
41 | delAccessor?: string;
|
42 | addAccessor?: string;
|
43 |
|
44 | modelFindByAccessor?: string;
|
45 |
|
46 | hooks?: InstanceAssociationItem['hooks']
|
47 | }
|
48 |
|
49 | interface AssociationDefinitionOptions_ExtendsTo extends AssociationDefinitionOptions {
|
50 | table?: string;
|
51 |
|
52 | reverse?: string;
|
53 | reverseHooks?: InstanceAssociationItem_HasOne['hooks'];
|
54 | }
|
55 | interface AssociationDefinitionOptions_HasOne extends AssociationDefinitionOptions {
|
56 | reverse?: string;
|
57 | reverseHooks?: InstanceAssociationItem_HasOne['hooks'];
|
58 | }
|
59 | interface AssociationDefinitionOptions_HasMany extends AssociationDefinitionOptions {
|
60 | reverse?: string;
|
61 | reverseHooks?: AssociationDefinitionOptions_HasMany['hooks']
|
62 |
|
63 | key?: boolean
|
64 | mergeId?: string | FxOrmModel.DetailedPropertyDefinitionHash
|
65 | mergeAssocId?: string | FxOrmModel.DetailedPropertyDefinitionHash
|
66 | reverseAssociation?: string
|
67 |
|
68 | hooks?: InstanceAssociationItem['hooks'] & {
|
69 | |
70 |
|
71 |
|
72 | beforeAdd?: FxOrmHook.HookActionCallback
|
73 | afterAdd?: FxOrmHook.HookResultCallback
|
74 |
|
75 | beforeSave?: {
|
76 | (next?: Function): void;
|
77 | (extra: any, next?: Function): void;
|
78 | }
|
79 | }
|
80 | mergeTable?: string
|
81 |
|
82 | association?: string
|
83 |
|
84 | getAccessor?: string;
|
85 | setAccessor?: string;
|
86 | hasAccessor?: string;
|
87 | delAccessor?: string;
|
88 | addAccessor?: string;
|
89 | }
|
90 |
|
91 | interface InstanceAssociationItemHooks {
|
92 | beforeSet?: {
|
93 | (func: FxOrmHook.HookActionCallback, opts?: FxOrmHook.HookPatchOptions & Fibjs.AnyObject): any
|
94 | }
|
95 | afterSet?: {
|
96 | (func: FxOrmHook.HookResultCallback, opts?: FxOrmHook.HookPatchOptions & Fibjs.AnyObject): any
|
97 | }
|
98 | beforeRemove?: {
|
99 | (func: FxOrmHook.HookActionCallback, opts?: FxOrmHook.HookPatchOptions & Fibjs.AnyObject): any
|
100 | }
|
101 | afterRemove?: {
|
102 | (func: FxOrmHook.HookResultCallback, opts?: FxOrmHook.HookPatchOptions & Fibjs.AnyObject): any
|
103 | }
|
104 |
|
105 | beforeAdd?: {
|
106 | (func: FxOrmHook.HookActionCallback, opts?: FxOrmHook.HookPatchOptions & Fibjs.AnyObject): any
|
107 | }
|
108 | afterAdd?: {
|
109 | (func: FxOrmHook.HookResultCallback, opts?: FxOrmHook.HookPatchOptions & Fibjs.AnyObject): any
|
110 | }
|
111 | }
|
112 |
|
113 | interface InstanceAssociationItem extends InstanceAssociationItemHooks {
|
114 | name: string
|
115 | model: FxOrmModel.Model
|
116 | field: string | FxOrmProperty.NormalizedPropertyHash
|
117 | hooks: {
|
118 | beforeSet?: FxOrmNS.Arraible<FxOrmHook.HookActionCallback>
|
119 | afterSet?: FxOrmNS.Arraible<FxOrmHook.HookResultCallback>
|
120 | beforeRemove?: FxOrmNS.Arraible<FxOrmHook.HookActionCallback>
|
121 | afterRemove?: FxOrmNS.Arraible<FxOrmHook.HookResultCallback>
|
122 |
|
123 | [k: string]: FxOrmNS.Arraible<FxOrmHook.HookActionCallback | FxOrmHook.HookResultCallback>
|
124 | }
|
125 |
|
126 |
|
127 | __for_extension?: boolean
|
128 |
|
129 | getAccessor: string
|
130 | getSyncAccessor: string
|
131 | setAccessor: string
|
132 | setSyncAccessor: string
|
133 | hasAccessor: string
|
134 | hasSyncAccessor: string
|
135 | delAccessor: string
|
136 | delSyncAccessor: string
|
137 |
|
138 | addAccessor?: string
|
139 | addSyncAccessor?: string
|
140 |
|
141 | modelFindByAccessor?: string
|
142 | modelFindBySyncAccessor?: string
|
143 |
|
144 | reversed?: boolean
|
145 | autoFetch: boolean
|
146 | autoFetchLimit: number
|
147 |
|
148 | mapsTo?: FxOrmModel.ModelPropertyDefinition['mapsTo']
|
149 |
|
150 |
|
151 | [k: string]: any
|
152 | }
|
153 |
|
154 | interface InstanceAssociatedInstance extends FxOrmInstance.Instance {
|
155 | }
|
156 |
|
157 | interface InstanceAssociationItem_ExtendTos extends InstanceAssociationItem {
|
158 | table: string;
|
159 | reverse?: string;
|
160 | modelFindByAccessor: string
|
161 | }
|
162 |
|
163 | interface InstanceAssociationItem_HasOne extends InstanceAssociationItem {
|
164 | field: FxOrmProperty.NormalizedPropertyHash
|
165 |
|
166 | reverse?: string;
|
167 | reverseHooks?: InstanceAssociationItem_HasOne['hooks'];
|
168 |
|
169 | accessor?: string;
|
170 | reverseAccessor?: string;
|
171 |
|
172 |
|
173 |
|
174 | modelFindByAccessor: string
|
175 |
|
176 | required?: boolean;
|
177 | __for_extension?: boolean;
|
178 | }
|
179 |
|
180 | interface InstanceAssociationItem_HasMany extends InstanceAssociationItem {
|
181 | props: FxOrmProperty.NormalizedPropertyHash
|
182 |
|
183 |
|
184 | mergeTable: string
|
185 | mergeId: FxOrmProperty.NormalizedPropertyHash
|
186 | mergeAssocId: FxOrmProperty.NormalizedPropertyHash
|
187 |
|
188 | getAccessor: string
|
189 | setAccessor: string
|
190 | hasAccessor: string
|
191 | delAccessor: string
|
192 | addAccessor: string
|
193 |
|
194 | modelFindByAccessor?: string
|
195 |
|
196 | hooks: AssociationDefinitionOptions_HasMany['hooks']
|
197 | }
|
198 |
|
199 | interface InstanceAssociationItemInformation {
|
200 | changed: boolean
|
201 | value?: InstanceAssociatedInstance
|
202 | data?: InstanceAssociationItem
|
203 | }
|
204 |
|
205 |
|
206 | type ModelAssociationMethod__ComputationPayload__Merge = FxOrmQuery.ChainFindMergeInfo
|
207 |
|
208 | interface ModelAssociationMethod__Options {
|
209 |
|
210 | join_where?: FxOrmModel.ModelFindByDescriptorItem['join_where']
|
211 | extra?: FxOrmModel.ModelOptions__Find['extra']
|
212 | extra_info?: {
|
213 | table: string
|
214 | id: FxOrmModel.Model['id']
|
215 | id_prop: string[]
|
216 | assoc_prop: string[]
|
217 | }
|
218 | }
|
219 |
|
220 | interface ModelAssociationMethod__FindOptions extends FxOrmModel.ModelOptions__Find, ModelAssociationMethod__Options {
|
221 | }
|
222 |
|
223 | interface ModelAssociationMethod__GetOptions extends FxOrmModel.ModelOptions__Find, ModelAssociationMethod__Options {
|
224 | }
|
225 |
|
226 | interface ModelAssociationMethod__FindByOptions extends FxOrmModel.ModelOptions__Findby, ModelAssociationMethod__Options {
|
227 | }
|
228 |
|
229 | interface AccessorOptions_has {
|
230 |
|
231 | }
|
232 |
|
233 | type AccessorOptions_get = FxOrmNS.IdType | FxOrmModel.ModelQueryConditions__Find
|
234 |
|
235 | interface AutoFetchInstanceOptions {
|
236 | autoFetch?: boolean
|
237 | autoFetchLimit?: number
|
238 | }
|
239 | }
|