@statezero/core 0.2.50 → 0.2.52

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 (171) hide show
  1. package/dist/adaptors/vue/components/StateZeroDebugPanel.js +489 -471
  2. package/dist/adaptors/vue/reactivity.d.ts +1 -0
  3. package/dist/adaptors/vue/reactivity.js +17 -5
  4. package/dist/cli/commands/syncActions.js +33 -1
  5. package/dist/cli/commands/syncModels.js +44 -3
  6. package/dist/filtering/localFiltering.js +4 -4
  7. package/dist/flavours/django/errors.d.ts +12 -0
  8. package/dist/flavours/django/errors.js +20 -0
  9. package/dist/flavours/django/f.js +16 -15
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.js +2 -2
  12. package/dist/models/backend1/django_app/author.d.ts +284 -0
  13. package/dist/models/backend1/django_app/author.js +69 -0
  14. package/dist/models/backend1/django_app/author.schema.json +281 -0
  15. package/dist/models/backend1/django_app/book.d.ts +262 -0
  16. package/dist/models/backend1/django_app/book.js +71 -0
  17. package/dist/models/backend1/django_app/book.schema.json +254 -0
  18. package/dist/models/backend1/django_app/composeditem.d.ts +140 -0
  19. package/dist/models/backend1/django_app/composeditem.js +69 -0
  20. package/dist/models/backend1/django_app/composeditem.schema.json +122 -0
  21. package/dist/models/backend1/django_app/comprehensivemodel.schema.json +3 -3
  22. package/dist/models/backend1/django_app/dailyrate.schema.json +7 -7
  23. package/dist/models/backend1/django_app/deepmodellevel1.schema.json +1 -1
  24. package/dist/models/backend1/django_app/dummymodel.schema.json +3 -3
  25. package/dist/models/backend1/django_app/errortestcompoundunique.d.ts +124 -0
  26. package/dist/models/backend1/django_app/errortestcompoundunique.js +69 -0
  27. package/dist/models/backend1/django_app/errortestcompoundunique.schema.json +106 -0
  28. package/dist/models/backend1/django_app/errortestonetoonemodel.d.ts +118 -0
  29. package/dist/models/backend1/django_app/errortestonetoonemodel.js +71 -0
  30. package/dist/models/backend1/django_app/errortestonetoonemodel.schema.json +90 -0
  31. package/dist/models/backend1/django_app/errortestparent.d.ts +92 -0
  32. package/dist/models/backend1/django_app/errortestparent.js +69 -0
  33. package/dist/models/backend1/django_app/errortestparent.schema.json +70 -0
  34. package/dist/models/backend1/django_app/errortestprotectedchild.d.ts +118 -0
  35. package/dist/models/backend1/django_app/errortestprotectedchild.js +71 -0
  36. package/dist/models/backend1/django_app/errortestprotectedchild.schema.json +94 -0
  37. package/dist/models/backend1/django_app/errortestuniquemodel.d.ts +108 -0
  38. package/dist/models/backend1/django_app/errortestuniquemodel.js +69 -0
  39. package/dist/models/backend1/django_app/errortestuniquemodel.schema.json +88 -0
  40. package/dist/models/backend1/django_app/excludeditem.d.ts +124 -0
  41. package/dist/models/backend1/django_app/excludeditem.js +69 -0
  42. package/dist/models/backend1/django_app/excludeditem.schema.json +105 -0
  43. package/dist/models/backend1/django_app/hfchild.d.ts +118 -0
  44. package/dist/models/backend1/django_app/hfchild.js +71 -0
  45. package/dist/models/backend1/django_app/hfchild.schema.json +94 -0
  46. package/dist/models/backend1/django_app/hfparent.d.ts +124 -0
  47. package/dist/models/backend1/django_app/hfparent.js +69 -0
  48. package/dist/models/backend1/django_app/hfparent.schema.json +105 -0
  49. package/dist/models/backend1/django_app/index.js +19 -0
  50. package/dist/models/backend1/django_app/m2mdepthtestlevel1.schema.json +3 -3
  51. package/dist/models/backend1/django_app/m2mdepthtestlevel2.schema.json +3 -3
  52. package/dist/models/backend1/django_app/m2mdepthtestlevel3.schema.json +5 -5
  53. package/dist/models/backend1/django_app/modelwithrestrictedfields.schema.json +2 -2
  54. package/dist/models/backend1/django_app/nodeleteitem.d.ts +124 -0
  55. package/dist/models/backend1/django_app/nodeleteitem.js +69 -0
  56. package/dist/models/backend1/django_app/nodeleteitem.schema.json +105 -0
  57. package/dist/models/backend1/django_app/objectlevelitem.d.ts +124 -0
  58. package/dist/models/backend1/django_app/objectlevelitem.js +69 -0
  59. package/dist/models/backend1/django_app/objectlevelitem.schema.json +105 -0
  60. package/dist/models/backend1/django_app/order.schema.json +7 -7
  61. package/dist/models/backend1/django_app/orderitem.schema.json +5 -5
  62. package/dist/models/backend1/django_app/product.schema.json +11 -11
  63. package/dist/models/backend1/django_app/productcategory.schema.json +2 -2
  64. package/dist/models/backend1/django_app/rateplan.schema.json +2 -2
  65. package/dist/models/backend1/django_app/readonlyitem.d.ts +124 -0
  66. package/dist/models/backend1/django_app/readonlyitem.js +69 -0
  67. package/dist/models/backend1/django_app/readonlyitem.schema.json +105 -0
  68. package/dist/models/backend1/django_app/restrictedcreateitem.d.ts +124 -0
  69. package/dist/models/backend1/django_app/restrictedcreateitem.js +69 -0
  70. package/dist/models/backend1/django_app/restrictedcreateitem.schema.json +105 -0
  71. package/dist/models/backend1/django_app/restrictededititem.d.ts +124 -0
  72. package/dist/models/backend1/django_app/restrictededititem.js +69 -0
  73. package/dist/models/backend1/django_app/restrictededititem.schema.json +105 -0
  74. package/dist/models/backend1/django_app/restrictedfieldrelatedmodel.schema.json +1 -1
  75. package/dist/models/backend1/django_app/rowfiltereditem.d.ts +124 -0
  76. package/dist/models/backend1/django_app/rowfiltereditem.js +69 -0
  77. package/dist/models/backend1/django_app/rowfiltereditem.schema.json +105 -0
  78. package/dist/models/backend1/django_app/tag.d.ts +554 -0
  79. package/dist/models/backend1/django_app/tag.js +71 -0
  80. package/dist/models/backend1/django_app/tag.schema.json +541 -0
  81. package/dist/models/backend1/django_app/updateonlyitem.d.ts +108 -0
  82. package/dist/models/backend1/django_app/updateonlyitem.js +69 -0
  83. package/dist/models/backend1/django_app/updateonlyitem.schema.json +88 -0
  84. package/dist/models/default/django_app/author.d.ts +284 -0
  85. package/dist/models/default/django_app/author.js +69 -0
  86. package/dist/models/default/django_app/author.schema.json +281 -0
  87. package/dist/models/default/django_app/book.d.ts +262 -0
  88. package/dist/models/default/django_app/book.js +71 -0
  89. package/dist/models/default/django_app/book.schema.json +254 -0
  90. package/dist/models/default/django_app/composeditem.d.ts +140 -0
  91. package/dist/models/default/django_app/composeditem.js +69 -0
  92. package/dist/models/default/django_app/composeditem.schema.json +122 -0
  93. package/dist/models/default/django_app/comprehensivemodel.schema.json +3 -3
  94. package/dist/models/default/django_app/dailyrate.schema.json +7 -7
  95. package/dist/models/default/django_app/deepmodellevel1.d.ts +1 -13
  96. package/dist/models/default/django_app/deepmodellevel1.schema.json +2 -14
  97. package/dist/models/default/django_app/deepmodellevel2.d.ts +1 -13
  98. package/dist/models/default/django_app/deepmodellevel2.schema.json +1 -13
  99. package/dist/models/default/django_app/deepmodellevel3.d.ts +1 -13
  100. package/dist/models/default/django_app/deepmodellevel3.schema.json +1 -13
  101. package/dist/models/default/django_app/dummymodel.d.ts +1 -13
  102. package/dist/models/default/django_app/dummymodel.schema.json +4 -16
  103. package/dist/models/default/django_app/dummyrelatedmodel.d.ts +1 -13
  104. package/dist/models/default/django_app/dummyrelatedmodel.schema.json +1 -13
  105. package/dist/models/default/django_app/errortestcompoundunique.d.ts +124 -0
  106. package/dist/models/default/django_app/errortestcompoundunique.js +69 -0
  107. package/dist/models/default/django_app/errortestcompoundunique.schema.json +106 -0
  108. package/dist/models/default/django_app/errortestonetoonemodel.d.ts +118 -0
  109. package/dist/models/default/django_app/errortestonetoonemodel.js +71 -0
  110. package/dist/models/default/django_app/errortestonetoonemodel.schema.json +90 -0
  111. package/dist/models/default/django_app/errortestparent.d.ts +92 -0
  112. package/dist/models/default/django_app/errortestparent.js +69 -0
  113. package/dist/models/default/django_app/errortestparent.schema.json +70 -0
  114. package/dist/models/default/django_app/errortestprotectedchild.d.ts +118 -0
  115. package/dist/models/default/django_app/errortestprotectedchild.js +71 -0
  116. package/dist/models/default/django_app/errortestprotectedchild.schema.json +94 -0
  117. package/dist/models/default/django_app/errortestuniquemodel.d.ts +108 -0
  118. package/dist/models/default/django_app/errortestuniquemodel.js +69 -0
  119. package/dist/models/default/django_app/errortestuniquemodel.schema.json +88 -0
  120. package/dist/models/default/django_app/excludeditem.d.ts +124 -0
  121. package/dist/models/default/django_app/excludeditem.js +69 -0
  122. package/dist/models/default/django_app/excludeditem.schema.json +105 -0
  123. package/dist/models/default/django_app/filetest.d.ts +1 -13
  124. package/dist/models/default/django_app/filetest.schema.json +1 -13
  125. package/dist/models/default/django_app/hfchild.d.ts +118 -0
  126. package/dist/models/default/django_app/hfchild.js +71 -0
  127. package/dist/models/default/django_app/hfchild.schema.json +94 -0
  128. package/dist/models/default/django_app/hfparent.d.ts +124 -0
  129. package/dist/models/default/django_app/hfparent.js +69 -0
  130. package/dist/models/default/django_app/hfparent.schema.json +105 -0
  131. package/dist/models/default/django_app/index.js +19 -0
  132. package/dist/models/default/django_app/m2mdepthtestlevel1.schema.json +3 -3
  133. package/dist/models/default/django_app/m2mdepthtestlevel2.schema.json +3 -3
  134. package/dist/models/default/django_app/m2mdepthtestlevel3.schema.json +5 -5
  135. package/dist/models/default/django_app/modelwithrestrictedfields.schema.json +2 -2
  136. package/dist/models/default/django_app/nodeleteitem.d.ts +124 -0
  137. package/dist/models/default/django_app/nodeleteitem.js +69 -0
  138. package/dist/models/default/django_app/nodeleteitem.schema.json +105 -0
  139. package/dist/models/default/django_app/objectlevelitem.d.ts +124 -0
  140. package/dist/models/default/django_app/objectlevelitem.js +69 -0
  141. package/dist/models/default/django_app/objectlevelitem.schema.json +105 -0
  142. package/dist/models/default/django_app/order.schema.json +7 -7
  143. package/dist/models/default/django_app/orderitem.schema.json +5 -5
  144. package/dist/models/default/django_app/product.schema.json +11 -11
  145. package/dist/models/default/django_app/productcategory.schema.json +2 -2
  146. package/dist/models/default/django_app/rateplan.schema.json +2 -2
  147. package/dist/models/default/django_app/readonlyitem.d.ts +124 -0
  148. package/dist/models/default/django_app/readonlyitem.js +69 -0
  149. package/dist/models/default/django_app/readonlyitem.schema.json +105 -0
  150. package/dist/models/default/django_app/restrictedcreateitem.d.ts +124 -0
  151. package/dist/models/default/django_app/restrictedcreateitem.js +69 -0
  152. package/dist/models/default/django_app/restrictedcreateitem.schema.json +105 -0
  153. package/dist/models/default/django_app/restrictededititem.d.ts +124 -0
  154. package/dist/models/default/django_app/restrictededititem.js +69 -0
  155. package/dist/models/default/django_app/restrictededititem.schema.json +105 -0
  156. package/dist/models/default/django_app/restrictedfieldrelatedmodel.schema.json +1 -1
  157. package/dist/models/default/django_app/rowfiltereditem.d.ts +124 -0
  158. package/dist/models/default/django_app/rowfiltereditem.js +69 -0
  159. package/dist/models/default/django_app/rowfiltereditem.schema.json +105 -0
  160. package/dist/models/default/django_app/tag.d.ts +554 -0
  161. package/dist/models/default/django_app/tag.js +71 -0
  162. package/dist/models/default/django_app/tag.schema.json +541 -0
  163. package/dist/models/default/django_app/updateonlyitem.d.ts +108 -0
  164. package/dist/models/default/django_app/updateonlyitem.js +69 -0
  165. package/dist/models/default/django_app/updateonlyitem.schema.json +88 -0
  166. package/dist/schemaIntegrity.d.ts +14 -0
  167. package/dist/schemaIntegrity.js +29 -0
  168. package/dist/setup.js +6 -0
  169. package/dist/syncEngine/stores/operationEventHandlers.js +10 -8
  170. package/dist/syncEngine/stores/querysetStore.js +9 -0
  171. package/package.json +1 -1
@@ -0,0 +1,262 @@
1
+ /**
2
+ * Model-specific QuerySet implementation
3
+ */
4
+ export class BookQuerySet {
5
+ }
6
+ /**
7
+ * Model-specific Manager implementation
8
+ */
9
+ export class BookManager {
10
+ constructor(ModelClass: any);
11
+ newQuerySet(): BookQuerySet;
12
+ }
13
+ /**
14
+ * Implementation of the Book model
15
+ */
16
+ export class Book {
17
+ static configKey: string;
18
+ static modelName: string;
19
+ static primaryKeyField: string;
20
+ static objects: BookManager;
21
+ static fields: string[];
22
+ static schema: {
23
+ model_name: string;
24
+ title: string;
25
+ class_name: string;
26
+ plural_title: string;
27
+ primary_key_field: string;
28
+ filterable_fields: string[];
29
+ searchable_fields: string[];
30
+ ordering_fields: string[];
31
+ properties: {
32
+ id: {
33
+ type: string;
34
+ title: string;
35
+ required: boolean;
36
+ description: null;
37
+ nullable: boolean;
38
+ format: string;
39
+ max_length: null;
40
+ choices: null;
41
+ default: null;
42
+ validators: never[];
43
+ max_digits: null;
44
+ decimal_places: null;
45
+ read_only: boolean;
46
+ ref: null;
47
+ };
48
+ title: {
49
+ type: string;
50
+ title: string;
51
+ required: boolean;
52
+ description: null;
53
+ nullable: boolean;
54
+ format: null;
55
+ max_length: number;
56
+ choices: null;
57
+ default: null;
58
+ validators: never[];
59
+ max_digits: null;
60
+ decimal_places: null;
61
+ read_only: boolean;
62
+ ref: null;
63
+ };
64
+ description: {
65
+ type: string;
66
+ title: string;
67
+ required: boolean;
68
+ description: null;
69
+ nullable: boolean;
70
+ format: string;
71
+ max_length: null;
72
+ choices: null;
73
+ default: string;
74
+ validators: never[];
75
+ max_digits: null;
76
+ decimal_places: null;
77
+ read_only: boolean;
78
+ ref: null;
79
+ };
80
+ price: {
81
+ type: string;
82
+ title: string;
83
+ required: boolean;
84
+ description: null;
85
+ nullable: boolean;
86
+ format: string;
87
+ max_length: null;
88
+ choices: null;
89
+ default: number;
90
+ validators: never[];
91
+ max_digits: number;
92
+ decimal_places: number;
93
+ read_only: boolean;
94
+ ref: null;
95
+ };
96
+ pages: {
97
+ type: string;
98
+ title: string;
99
+ required: boolean;
100
+ description: null;
101
+ nullable: boolean;
102
+ format: null;
103
+ max_length: null;
104
+ choices: null;
105
+ default: null;
106
+ validators: never[];
107
+ max_digits: null;
108
+ decimal_places: null;
109
+ read_only: boolean;
110
+ ref: null;
111
+ };
112
+ weight: {
113
+ type: string;
114
+ title: string;
115
+ required: boolean;
116
+ description: null;
117
+ nullable: boolean;
118
+ format: null;
119
+ max_length: null;
120
+ choices: null;
121
+ default: null;
122
+ validators: never[];
123
+ max_digits: null;
124
+ decimal_places: null;
125
+ read_only: boolean;
126
+ ref: null;
127
+ };
128
+ is_published: {
129
+ type: string;
130
+ title: string;
131
+ required: boolean;
132
+ description: null;
133
+ nullable: boolean;
134
+ format: null;
135
+ max_length: null;
136
+ choices: null;
137
+ default: boolean;
138
+ validators: never[];
139
+ max_digits: null;
140
+ decimal_places: null;
141
+ read_only: boolean;
142
+ ref: null;
143
+ };
144
+ publish_date: {
145
+ type: string;
146
+ title: string;
147
+ required: boolean;
148
+ description: null;
149
+ nullable: boolean;
150
+ format: string;
151
+ max_length: null;
152
+ choices: null;
153
+ default: null;
154
+ validators: never[];
155
+ max_digits: null;
156
+ decimal_places: null;
157
+ read_only: boolean;
158
+ ref: null;
159
+ };
160
+ last_updated: {
161
+ type: string;
162
+ title: string;
163
+ required: boolean;
164
+ description: null;
165
+ nullable: boolean;
166
+ format: string;
167
+ max_length: null;
168
+ choices: null;
169
+ default: null;
170
+ validators: never[];
171
+ max_digits: null;
172
+ decimal_places: null;
173
+ read_only: boolean;
174
+ ref: null;
175
+ };
176
+ isbn: {
177
+ type: string;
178
+ title: string;
179
+ required: boolean;
180
+ description: null;
181
+ nullable: boolean;
182
+ format: null;
183
+ max_length: number;
184
+ choices: null;
185
+ default: string;
186
+ validators: never[];
187
+ max_digits: null;
188
+ decimal_places: null;
189
+ read_only: boolean;
190
+ ref: null;
191
+ };
192
+ metadata: {
193
+ type: string;
194
+ title: string;
195
+ required: boolean;
196
+ description: null;
197
+ nullable: boolean;
198
+ format: string;
199
+ max_length: null;
200
+ choices: null;
201
+ default: {};
202
+ validators: never[];
203
+ max_digits: null;
204
+ decimal_places: null;
205
+ read_only: boolean;
206
+ ref: null;
207
+ };
208
+ author: {
209
+ type: string;
210
+ title: string;
211
+ required: boolean;
212
+ description: null;
213
+ nullable: boolean;
214
+ format: string;
215
+ max_length: null;
216
+ choices: null;
217
+ default: null;
218
+ validators: never[];
219
+ max_digits: null;
220
+ decimal_places: null;
221
+ read_only: boolean;
222
+ ref: null;
223
+ };
224
+ };
225
+ relationships: {
226
+ author: {
227
+ type: string;
228
+ model: string;
229
+ class_name: string;
230
+ primary_key_field: string;
231
+ };
232
+ };
233
+ default_ordering: null;
234
+ definitions: {
235
+ MoneyField: {
236
+ type: string;
237
+ properties: {
238
+ amount: {
239
+ type: string;
240
+ };
241
+ currency: {
242
+ type: string;
243
+ };
244
+ };
245
+ };
246
+ };
247
+ datetime_format: string;
248
+ date_format: string;
249
+ time_format: string;
250
+ display: null;
251
+ };
252
+ static relationshipFields: Map<string, {
253
+ ModelClass: () => any;
254
+ relationshipType: string;
255
+ }>;
256
+ constructor(data: any);
257
+ /**
258
+ * Define property getters and setters for all model fields
259
+ * @private
260
+ */
261
+ private _defineProperties;
262
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * This file was auto-generated. Do not make direct changes to the file.
3
+ */
4
+ import { Model, Manager, QuerySet, getModelClass } from '../../../../src';
5
+ import { wrapReactiveModel } from '../../../../src';
6
+ import schemaData from './book.schema.json';
7
+ /**
8
+ * Model-specific QuerySet implementation
9
+ */
10
+ export class BookQuerySet extends QuerySet {
11
+ }
12
+ /**
13
+ * Model-specific Manager implementation
14
+ */
15
+ export class BookManager extends Manager {
16
+ constructor(ModelClass) {
17
+ super(ModelClass, BookQuerySet);
18
+ }
19
+ newQuerySet() {
20
+ return new BookQuerySet(this.ModelClass);
21
+ }
22
+ }
23
+ /**
24
+ * Implementation of the Book model
25
+ */
26
+ export class Book extends Model {
27
+ constructor(data) {
28
+ Book.validateFields(data);
29
+ super(data);
30
+ // Define getters and setters for all fields
31
+ this._defineProperties();
32
+ return wrapReactiveModel(this);
33
+ }
34
+ /**
35
+ * Define property getters and setters for all model fields
36
+ * @private
37
+ */
38
+ _defineProperties() {
39
+ // For each field, define a property that gets/sets from internal storage
40
+ Book.fields.forEach(field => {
41
+ Object.defineProperty(this, field, {
42
+ get: function () {
43
+ return this.getField(field);
44
+ },
45
+ set: function (value) {
46
+ this.setField(field, value);
47
+ },
48
+ enumerable: true, // Make sure fields are enumerable for serialization
49
+ configurable: true
50
+ });
51
+ });
52
+ // Add a special read-only getter for the repr field
53
+ Object.defineProperty(this, 'repr', {
54
+ get: function () {
55
+ return this.getField('repr');
56
+ },
57
+ enumerable: true, // Make sure repr is enumerable
58
+ configurable: true
59
+ });
60
+ }
61
+ }
62
+ // Bind this model to its backend
63
+ Book.configKey = 'backend1';
64
+ Book.modelName = 'django_app.book';
65
+ Book.primaryKeyField = 'id';
66
+ Book.objects = new BookManager(Book);
67
+ Book.fields = ['id', 'title', 'description', 'price', 'pages', 'weight', 'is_published', 'publish_date', 'last_updated', 'isbn', 'metadata', 'author'];
68
+ Book.schema = schemaData;
69
+ Book.relationshipFields = new Map([
70
+ ['author', { 'ModelClass': () => getModelClass('django_app.author', 'backend1'), 'relationshipType': 'foreign-key' }]
71
+ ]);
@@ -0,0 +1,254 @@
1
+ {
2
+ "model_name": "django_app.book",
3
+ "title": "Book",
4
+ "class_name": "Book",
5
+ "plural_title": "Books",
6
+ "primary_key_field": "id",
7
+ "filterable_fields": [
8
+ "weight",
9
+ "last_updated",
10
+ "metadata",
11
+ "pages",
12
+ "author",
13
+ "price",
14
+ "title",
15
+ "isbn",
16
+ "is_published",
17
+ "id",
18
+ "publish_date",
19
+ "description"
20
+ ],
21
+ "searchable_fields": [
22
+ "isbn",
23
+ "title",
24
+ "description"
25
+ ],
26
+ "ordering_fields": [
27
+ "weight",
28
+ "last_updated",
29
+ "pages",
30
+ "price",
31
+ "title",
32
+ "publish_date"
33
+ ],
34
+ "properties": {
35
+ "id": {
36
+ "type": "integer",
37
+ "title": "Id",
38
+ "required": true,
39
+ "description": null,
40
+ "nullable": false,
41
+ "format": "id",
42
+ "max_length": null,
43
+ "choices": null,
44
+ "default": null,
45
+ "validators": [],
46
+ "max_digits": null,
47
+ "decimal_places": null,
48
+ "read_only": true,
49
+ "ref": null
50
+ },
51
+ "title": {
52
+ "type": "string",
53
+ "title": "Title",
54
+ "required": true,
55
+ "description": null,
56
+ "nullable": false,
57
+ "format": null,
58
+ "max_length": 200,
59
+ "choices": null,
60
+ "default": null,
61
+ "validators": [],
62
+ "max_digits": null,
63
+ "decimal_places": null,
64
+ "read_only": false,
65
+ "ref": null
66
+ },
67
+ "description": {
68
+ "type": "string",
69
+ "title": "Description",
70
+ "required": false,
71
+ "description": null,
72
+ "nullable": false,
73
+ "format": "text",
74
+ "max_length": null,
75
+ "choices": null,
76
+ "default": "",
77
+ "validators": [],
78
+ "max_digits": null,
79
+ "decimal_places": null,
80
+ "read_only": false,
81
+ "ref": null
82
+ },
83
+ "price": {
84
+ "type": "number",
85
+ "title": "Price",
86
+ "required": false,
87
+ "description": null,
88
+ "nullable": false,
89
+ "format": "decimal",
90
+ "max_length": null,
91
+ "choices": null,
92
+ "default": 0,
93
+ "validators": [],
94
+ "max_digits": 8,
95
+ "decimal_places": 2,
96
+ "read_only": false,
97
+ "ref": null
98
+ },
99
+ "pages": {
100
+ "type": "integer",
101
+ "title": "Pages",
102
+ "required": false,
103
+ "description": null,
104
+ "nullable": true,
105
+ "format": null,
106
+ "max_length": null,
107
+ "choices": null,
108
+ "default": null,
109
+ "validators": [],
110
+ "max_digits": null,
111
+ "decimal_places": null,
112
+ "read_only": false,
113
+ "ref": null
114
+ },
115
+ "weight": {
116
+ "type": "object",
117
+ "title": "Weight",
118
+ "required": false,
119
+ "description": null,
120
+ "nullable": true,
121
+ "format": null,
122
+ "max_length": null,
123
+ "choices": null,
124
+ "default": null,
125
+ "validators": [],
126
+ "max_digits": null,
127
+ "decimal_places": null,
128
+ "read_only": false,
129
+ "ref": null
130
+ },
131
+ "is_published": {
132
+ "type": "boolean",
133
+ "title": "Is published",
134
+ "required": false,
135
+ "description": null,
136
+ "nullable": false,
137
+ "format": null,
138
+ "max_length": null,
139
+ "choices": null,
140
+ "default": false,
141
+ "validators": [],
142
+ "max_digits": null,
143
+ "decimal_places": null,
144
+ "read_only": false,
145
+ "ref": null
146
+ },
147
+ "publish_date": {
148
+ "type": "string",
149
+ "title": "Publish date",
150
+ "required": false,
151
+ "description": null,
152
+ "nullable": true,
153
+ "format": "date",
154
+ "max_length": null,
155
+ "choices": null,
156
+ "default": null,
157
+ "validators": [],
158
+ "max_digits": null,
159
+ "decimal_places": null,
160
+ "read_only": false,
161
+ "ref": null
162
+ },
163
+ "last_updated": {
164
+ "type": "string",
165
+ "title": "Last updated",
166
+ "required": false,
167
+ "description": null,
168
+ "nullable": true,
169
+ "format": "date-time",
170
+ "max_length": null,
171
+ "choices": null,
172
+ "default": null,
173
+ "validators": [],
174
+ "max_digits": null,
175
+ "decimal_places": null,
176
+ "read_only": false,
177
+ "ref": null
178
+ },
179
+ "isbn": {
180
+ "type": "string",
181
+ "title": "Isbn",
182
+ "required": false,
183
+ "description": null,
184
+ "nullable": false,
185
+ "format": null,
186
+ "max_length": 13,
187
+ "choices": null,
188
+ "default": "",
189
+ "validators": [],
190
+ "max_digits": null,
191
+ "decimal_places": null,
192
+ "read_only": false,
193
+ "ref": null
194
+ },
195
+ "metadata": {
196
+ "type": "object",
197
+ "title": "Metadata",
198
+ "required": false,
199
+ "description": null,
200
+ "nullable": false,
201
+ "format": "json",
202
+ "max_length": null,
203
+ "choices": null,
204
+ "default": {},
205
+ "validators": [],
206
+ "max_digits": null,
207
+ "decimal_places": null,
208
+ "read_only": false,
209
+ "ref": null
210
+ },
211
+ "author": {
212
+ "type": "integer",
213
+ "title": "Author",
214
+ "required": false,
215
+ "description": null,
216
+ "nullable": true,
217
+ "format": "foreign-key",
218
+ "max_length": null,
219
+ "choices": null,
220
+ "default": null,
221
+ "validators": [],
222
+ "max_digits": null,
223
+ "decimal_places": null,
224
+ "read_only": false,
225
+ "ref": null
226
+ }
227
+ },
228
+ "relationships": {
229
+ "author": {
230
+ "type": "foreign-key",
231
+ "model": "django_app.author",
232
+ "class_name": "Author",
233
+ "primary_key_field": "id"
234
+ }
235
+ },
236
+ "default_ordering": null,
237
+ "definitions": {
238
+ "MoneyField": {
239
+ "type": "object",
240
+ "properties": {
241
+ "amount": {
242
+ "type": "number"
243
+ },
244
+ "currency": {
245
+ "type": "string"
246
+ }
247
+ }
248
+ }
249
+ },
250
+ "datetime_format": "iso-8601",
251
+ "date_format": "iso-8601",
252
+ "time_format": "iso-8601",
253
+ "display": null
254
+ }