|
@@ -1,121 +1,132 @@
|
|
|
import { z } from "zod";
|
|
|
|
|
|
const DbSchema = {
|
|
|
- ev: {
|
|
|
- events: {
|
|
|
- eventId: z.string().uuid(),
|
|
|
- localName: z.string(),
|
|
|
- timezone: z.string(),
|
|
|
- companyId: z.string().uuid(),
|
|
|
- eventTypeId: z.string(),
|
|
|
+ usr: {
|
|
|
+ users: {
|
|
|
+ userId: z.string().uuid(),
|
|
|
+ email: z.string().email(),
|
|
|
+ password: z.string(),
|
|
|
+ firstName: z.string(),
|
|
|
+ lastName: z.string(),
|
|
|
+ patronymic: z.string().nullable(),
|
|
|
+ wrongPassTries: z.number().int().default(0),
|
|
|
},
|
|
|
- eventTypes: {
|
|
|
- eventTypeId: z.string(),
|
|
|
+ roles: {
|
|
|
+ roleId: z.string().uuid(),
|
|
|
name: z.string(),
|
|
|
+ eventId: z.string().uuid().nullable(),
|
|
|
+ eventTypeId: z.string().uuid().nullable(),
|
|
|
+ isSystem: z.boolean().nullable(),
|
|
|
},
|
|
|
- eventDates: {
|
|
|
- eventId: z.string().uuid(),
|
|
|
- date: z.string().datetime(),
|
|
|
+ groups: {
|
|
|
+ groupId: z.string().uuid(),
|
|
|
+ name: z.string(),
|
|
|
},
|
|
|
- eventLocations: {
|
|
|
- eventId: z.string().uuid(),
|
|
|
- locationId: z.string().uuid(),
|
|
|
+ roleGroups: {
|
|
|
+ roleId: z.string().uuid(),
|
|
|
+ groupId: z.string().uuid(),
|
|
|
},
|
|
|
- locations: {
|
|
|
- locationId: z.string().uuid(),
|
|
|
+ perms: {
|
|
|
+ permId: z.string().uuid(),
|
|
|
+ code: z.string(),
|
|
|
name: z.string(),
|
|
|
- eventId: z.string().uuid(),
|
|
|
+ objId: z.string().uuid(),
|
|
|
},
|
|
|
- areas: {
|
|
|
- areaId: z.string().uuid(),
|
|
|
+ objects: {
|
|
|
+ objId: z.string().uuid(),
|
|
|
+ code: z.string(),
|
|
|
name: z.string(),
|
|
|
- locationId: z.string().uuid(),
|
|
|
- parentId: z.string().uuid().nullable(),
|
|
|
+ description: z.string(),
|
|
|
},
|
|
|
- programPoints: {
|
|
|
- programPointId: z.string().uuid(),
|
|
|
- name: z.string().min(1),
|
|
|
- startDate: z.string().datetime(),
|
|
|
- endDate: z.string().datetime(),
|
|
|
- eventId: z.string().uuid(),
|
|
|
- areaId: z.string().uuid().nullable(),
|
|
|
- blockId: z.string(),
|
|
|
- isInternal: z.boolean(),
|
|
|
+ groupPerms: {
|
|
|
+ groupId: z.string().uuid(),
|
|
|
+ permId: z.string().uuid(),
|
|
|
+ },
|
|
|
+ userRoles: {
|
|
|
+ roleId: z.string().uuid(),
|
|
|
+ userId: z.string().uuid(),
|
|
|
+ eventId: z.string().uuid().nullable(),
|
|
|
},
|
|
|
- },
|
|
|
-
|
|
|
- usr: {
|
|
|
confirmPins: {
|
|
|
transactionId: z.string().uuid(),
|
|
|
email: z.string().email(),
|
|
|
- confirmPin: z.number().min(1000).max(9999),
|
|
|
+ confirmPin: z.string(),
|
|
|
createTime: z.string().datetime(),
|
|
|
- wrongPinTries: z.number(),
|
|
|
+ wrongPinTries: z.number().int().default(0),
|
|
|
},
|
|
|
-
|
|
|
userRefreshTokens: {
|
|
|
tokenId: z.string().uuid(),
|
|
|
- refreshToken: z.string(),
|
|
|
userId: z.string().uuid(),
|
|
|
+ refreshToken: z.string(),
|
|
|
+ rotDate: z.string().datetime(),
|
|
|
},
|
|
|
- users: {
|
|
|
- userId: z.string().uuid(),
|
|
|
- email: z.string().email(),
|
|
|
- name: z.string(),
|
|
|
- password: z.string(),
|
|
|
- wrongPassTries: z.number(),
|
|
|
- },
|
|
|
-
|
|
|
- // roles
|
|
|
- roles: {
|
|
|
- roleId: z.string().uuid(),
|
|
|
- name: z.string(),
|
|
|
+ },
|
|
|
+ ev: {
|
|
|
+ events: {
|
|
|
eventId: z.string().uuid(),
|
|
|
- eventType: z.string(),
|
|
|
- isSystem: z.boolean(),
|
|
|
+ code: z.string(),
|
|
|
+ privateName: z.string(),
|
|
|
+ publicName: z.string(),
|
|
|
+ timezone: z.string(),
|
|
|
+ eventTypeId: z.string().uuid(),
|
|
|
+ ownerId: z.string().uuid(),
|
|
|
},
|
|
|
- userRoles: {
|
|
|
- roleId: z.string().uuid(),
|
|
|
- userId: z.string().uuid(),
|
|
|
+ eventTypes: {
|
|
|
+ eventTypeId: z.string().uuid(),
|
|
|
+ code: z.string(),
|
|
|
+ name: z.string(),
|
|
|
},
|
|
|
- roleGroups: {
|
|
|
- roleId: z.string().uuid(),
|
|
|
- groupId: z.string().uuid(),
|
|
|
+ eventDates: {
|
|
|
+ evDateId: z.string().uuid(),
|
|
|
+ eventId: z.string().uuid(),
|
|
|
+ date: z.string().datetime(),
|
|
|
},
|
|
|
- groups: {
|
|
|
- groupId: z.string().uuid(),
|
|
|
+ locations: {
|
|
|
+ locationId: z.string().uuid(),
|
|
|
name: z.string(),
|
|
|
+ eventId: z.string().uuid(),
|
|
|
},
|
|
|
- groupPerms: {
|
|
|
- groupId: z.string().uuid(),
|
|
|
- permId: z.string().uuid(),
|
|
|
+ areas: {
|
|
|
+ areaId: z.string().uuid(),
|
|
|
+ name: z.string(),
|
|
|
+ locationId: z.string().uuid(),
|
|
|
+ parentId: z.string().uuid().nullable(),
|
|
|
},
|
|
|
- perms: {
|
|
|
- permId: z.string().uuid(),
|
|
|
+ programBlocks: {
|
|
|
+ blockId: z.string().uuid(),
|
|
|
name: z.string(),
|
|
|
- objId: z.string().uuid(),
|
|
|
+ eventId: z.string().uuid(),
|
|
|
},
|
|
|
- objects: {
|
|
|
- objId: z.string().uuid(),
|
|
|
+ programPoints: {
|
|
|
+ pointId: z.string().uuid(),
|
|
|
name: z.string(),
|
|
|
+ dateStart: z.string().datetime(),
|
|
|
+ dateEnd: z.string().datetime(),
|
|
|
+ eventId: z.string().uuid(),
|
|
|
+ areaId: z.string().uuid().nullable(),
|
|
|
+ blockId: z.string().uuid().nullable(),
|
|
|
+ isInternal: z.boolean().nullable(),
|
|
|
},
|
|
|
},
|
|
|
-
|
|
|
act: {
|
|
|
- activities: {
|
|
|
- activityId: z.string().uuid(),
|
|
|
+ activityCategories: {
|
|
|
+ categoryId: z.string().uuid(),
|
|
|
name: z.string(),
|
|
|
eventId: z.string().uuid(),
|
|
|
},
|
|
|
- activityRegs: {
|
|
|
- activityRegId: z.string().uuid(),
|
|
|
- activityId: z.string().uuid(),
|
|
|
- peId: z.string().uuid(),
|
|
|
- },
|
|
|
peTypes: {
|
|
|
peTypeId: z.string().uuid(),
|
|
|
+ code: z.string(),
|
|
|
name: z.string(),
|
|
|
},
|
|
|
+ activities: {
|
|
|
+ activityId: z.string().uuid(),
|
|
|
+ privateName: z.string(),
|
|
|
+ publicName: z.string(),
|
|
|
+ eventId: z.string().uuid(),
|
|
|
+ categoryId: z.string().uuid().nullable(),
|
|
|
+ blockId: z.string().uuid().nullable(),
|
|
|
+ },
|
|
|
activityPeTypes: {
|
|
|
activityId: z.string().uuid(),
|
|
|
peTypeId: z.string().uuid(),
|
|
@@ -128,45 +139,55 @@ const DbSchema = {
|
|
|
},
|
|
|
peMembers: {
|
|
|
peMemberId: z.string().uuid(),
|
|
|
- peId: z.string().uuid(),
|
|
|
userId: z.string().uuid(),
|
|
|
- },
|
|
|
- // fields
|
|
|
- fieldValidators: {
|
|
|
- validatorId: z.string(),
|
|
|
- name: z.string(),
|
|
|
- fieldTypeId: z.string(),
|
|
|
- },
|
|
|
- fieldTypes: {
|
|
|
- fieldTypeId: z.string(),
|
|
|
- name: z.string(),
|
|
|
- },
|
|
|
- customFieldDefinitions: {
|
|
|
- fieldId: z.string().uuid(),
|
|
|
- name: z.string(),
|
|
|
- fieldTypeId: z.string(),
|
|
|
- validatorId: z.string().nullable(),
|
|
|
- validatorValue: z.string().nullable(),
|
|
|
- options: z.string().nullable(),
|
|
|
- isRequired: z.boolean(),
|
|
|
+ peId: z.string().uuid(),
|
|
|
},
|
|
|
activityRegFormFields: {
|
|
|
activityId: z.string().uuid(),
|
|
|
- fieldId: z.string().uuid(),
|
|
|
+ fieldDefinitionId: z.string().uuid(),
|
|
|
+ },
|
|
|
+ activityRegs: {
|
|
|
+ activityRegId: z.string().uuid(),
|
|
|
+ activityId: z.string().uuid(),
|
|
|
+ peId: z.string().uuid(),
|
|
|
},
|
|
|
arFieldValues: {
|
|
|
activityRegId: z.string().uuid(),
|
|
|
- fieldId: z.string().uuid(),
|
|
|
- value: z.string(),
|
|
|
+ fieldDefinitionId: z.string().uuid(),
|
|
|
+ value: z.string().nullable(),
|
|
|
},
|
|
|
- pe_form_fields: {
|
|
|
+ peFormFields: {
|
|
|
peTypeId: z.string().uuid(),
|
|
|
- fieldId: z.string().uuid(),
|
|
|
+ fieldDefinitionId: z.string().uuid(),
|
|
|
},
|
|
|
peFieldValues: {
|
|
|
peId: z.string().uuid(),
|
|
|
+ fieldDefinitionId: z.string().uuid(),
|
|
|
+ value: z.string().nullable(),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ cf: {
|
|
|
+ fieldTypes: {
|
|
|
+ fieldTypeId: z.string().uuid(),
|
|
|
+ code: z.string(),
|
|
|
+ },
|
|
|
+ fieldValidators: {
|
|
|
+ validatorId: z.string().uuid(),
|
|
|
+ code: z.string(),
|
|
|
+ name: z.string(),
|
|
|
+ fieldTypeId: z.string().uuid(),
|
|
|
+ },
|
|
|
+ customFieldDefinitions: {
|
|
|
+ fieldId: z.string().uuid(),
|
|
|
+ fieldTypeId: z.string().uuid(),
|
|
|
+ title: z.string(),
|
|
|
+ mask: z.string().nullable(),
|
|
|
+ options: z.string().nullable(),
|
|
|
+ },
|
|
|
+ customFieldValidators: {
|
|
|
fieldId: z.string().uuid(),
|
|
|
- value: z.string(),
|
|
|
+ validatorId: z.string().uuid(),
|
|
|
+ param: z.string().nullable(),
|
|
|
},
|
|
|
},
|
|
|
};
|