import { Entity, EnumDataType, EntityField, EnumEntityPermissionType, EnumEntityAction, DsgContext, } from "@amplication/code-gen-types"; export const USER_ENTITY_NAME = "User"; export const USER_NAME_FIELD_NAME = "username"; export const USER_PASSWORD_FIELD_NAME = "password"; export const USER_ROLES_FIELD_NAME = "roles"; export const USER_NAME_FIELD: EntityField = { id: "USER_NAME_FIELD", permanentId: "USER_NAME_FIELD_PERMANENT_ID", name: USER_NAME_FIELD_NAME, displayName: "Username", dataType: EnumDataType.Username, required: true, unique: true, searchable: false, }; export const USER_PASSWORD_FIELD: EntityField = { id: "USER_PASSWORD_FIELD", permanentId: "USER_PASSWORD_FIELD_PERMANENT_ID", name: USER_PASSWORD_FIELD_NAME, displayName: "Password", dataType: EnumDataType.Password, required: true, unique: false, searchable: false, }; export const USER_ROLES_FIELD: EntityField = { id: "USER_ROLES_FIELD", permanentId: "USER_ROLES_FIELD_PERMANENT_ID", name: USER_ROLES_FIELD_NAME, displayName: "Roles", dataType: EnumDataType.Roles, required: true, unique: false, searchable: false, properties: {}, }; export const USER_ID_FIELD: EntityField = { id: "USER_ID_FIELD", permanentId: "USER_ID_FIELD_PERMANENT_ID", name: "id", displayName: "Id", dataType: EnumDataType.Id, required: true, unique: false, searchable: false, }; export const USER_AUTH_FIELDS: EntityField[] = [ USER_NAME_FIELD, USER_PASSWORD_FIELD, USER_ROLES_FIELD, ]; export const DEFAULT_USER_ENTITY: Entity = { id: "user-model-id", name: USER_ENTITY_NAME, displayName: "User", pluralDisplayName: "Users", pluralName: "Users", fields: [USER_ID_FIELD, ...USER_AUTH_FIELDS], permissions: [ { action: EnumEntityAction.Create, permissionFields: [], permissionRoles: [], type: EnumEntityPermissionType.AllRoles, }, { action: EnumEntityAction.Delete, permissionFields: [], permissionRoles: [], type: EnumEntityPermissionType.AllRoles, }, { action: EnumEntityAction.Search, permissionFields: [], permissionRoles: [], type: EnumEntityPermissionType.AllRoles, }, { action: EnumEntityAction.Update, permissionFields: [], permissionRoles: [], type: EnumEntityPermissionType.AllRoles, }, { action: EnumEntityAction.View, permissionFields: [], permissionRoles: [], type: EnumEntityPermissionType.AllRoles, }, ], }; export class InvalidDataTypeError extends Error { constructor(fields: EntityField[]) { super( `Invalid fields data types: ${fields .map((field) => `${field.name} data type should be ${field.dataType}`) .join(", ")}` ); } }