123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- import {
- CustomFieldWithUserCopyValue,
- CustomFieldWithValidatorsAndValue,
- CustomFieldWithValue,
- InputFieldValue,
- } from "../types/custom-fields-types.js";
- import { z } from "zod";
- class ClientPartEntitiesApi {
- GET_EventPeTypes = {
- res: z.object({
- code: z.enum(["success"]),
- peTypes: z.array(
- z.object({
- peTypeId: z.string().uuid(),
- code: z.string(),
- name: z.string(),
- }),
- ),
- }),
- };
- GET_PeType = {
- req: z.object({
- peTypeCode: z.string(),
- }),
- res: z.object({
- code: z.enum(["success"]),
- peType: z.object({
- peTypeId: z.string().uuid(),
- code: z.string(),
- name: z.string(),
- fields: z.array(
- CustomFieldWithUserCopyValue.extend({
- peFfId: z.string(),
- }),
- ),
- }),
- }),
- };
- GET_MyPes = {
- res: z.object({
- code: z.enum(["success"]),
- owner: z.array(
- z.object({
- peId: z.string().uuid(),
- peTypeId: z.string().uuid(),
- peTypeCode: z.string(),
- peTypeName: z.string(),
- name: z.string(),
- eventInstId: z.string().uuid(),
- ownerId: z.string().uuid(),
- }),
- ),
- memeber: z.array(
- z.object({
- peMemberId: z.string().uuid(),
- peId: z.string().uuid(),
- peTypeId: z.string().uuid(),
- peTypeCode: z.string(),
- peTypeName: z.string(),
- ownerId: z.string().uuid(),
- name: z.string(),
- }),
- ),
- }),
- };
- GET_PartEntity = {
- req: z.object({
- peId: z.string().uuid(),
- }),
- res: z.object({
- code: z.enum(["success"]),
- pe: z.discriminatedUnion("userRole", [
- z.object({
- userRole: z.literal("owner"),
- peId: z.string().uuid(),
- peTypeId: z.string().uuid(),
- peTypeCode: z.string(),
- peTypeName: z.string(),
- maxMembers: z.number().int().nullable(),
- isWithMembers: z.boolean(),
- eventInstId: z.string().uuid(),
- name: z.string(),
- ownerId: z.string().uuid(),
- fields: z.array(
- CustomFieldWithValue.extend({ peFfId: z.string().uuid() }),
- ),
- members: z.array(
- z.object({
- peMemberId: z.string(),
- userId: z.string().uuid(),
- email: z.string().email(),
- fields: z.array(
- CustomFieldWithValue.extend({ userEfId: z.string().uuid() }),
- ),
- }),
- ),
- invites: z.array(
- z.object({
- peInviteId: z.string().uuid(),
- peInviteUuid: z.string().uuid(),
- name: z.string(),
- limitVal: z.number().int().nullable(),
- countVal: z.number().int(),
- expirationDate: z.string().datetime().nullable(),
- }),
- ),
- peMembersRequests: z.array(
- z.object({
- peMemberRequestId: z.string().uuid(),
- peInviteId: z.string().uuid(),
- userId: z.string().uuid(),
- userIdentity: z.string(),
- status: z.enum(["PENDING", "ACCEPTED", "REJECTED"]),
- }),
- ),
- }),
- z.object({
- userRole: z.literal("member"),
- peId: z.string().uuid(),
- peTypeId: z.string().uuid(),
- peTypeCode: z.string(),
- peTypeName: z.string(),
- eventInstId: z.string().uuid(),
- ownerId: z.string().uuid(),
- name: z.string(),
- }),
- ]),
- }),
- };
- POST_PartEntity = {
- req: {
- formData: {
- body: z.object({
- peTypeCode: z.string(),
- name: z.string(),
- fields: z.array(
- z.object({
- peFfId: z.string().uuid(),
- value: InputFieldValue,
- }),
- ),
- }),
- },
- },
- res: z.object({
- code: z.enum(["success"]),
- peId: z.string().uuid(),
- }),
- };
- GET_PeForPatch = {
- req: z.object({
- peId: z.string().uuid(),
- }),
- res: z.object({
- code: z.enum(["success"]),
- pe: z.object({
- peId: z.string().uuid(),
- peTypeId: z.string().uuid(),
- peTypeCode: z.string(),
- peTypeName: z.string(),
- eventInstId: z.string().uuid(),
- ownerId: z.string().uuid(),
- name: z.string(),
- fields: z.array(
- CustomFieldWithValidatorsAndValue.extend({
- peFfId: z.string().uuid(),
- }),
- ),
- }),
- }),
- };
- PATCH_PartEntity = {
- req: {
- formData: {
- body: z.object({
- name: z.string().optional(),
- fields: z.array(
- z.object({
- peFfId: z.string().uuid(),
- value: InputFieldValue,
- }),
- ),
- }),
- },
- params: z.object({
- peId: z.string().uuid(),
- }),
- },
- res: z.object({
- code: z.enum(["success"]),
- }),
- };
- POST_Invite = {
- req: {
- body: z.object({
- name: z.string(),
- limitVal: z.number().int().nullable(),
- expirationDate: z.string().datetime().nullable(),
- }),
- params: z.object({
- peId: z.string().uuid(),
- }),
- },
- res: z.object({
- code: z.enum(["success"]),
- peInviteId: z.string().uuid(),
- }),
- };
- GET_Invites = {
- req: z.object({
- peId: z.string().uuid(),
- }),
- res: z.object({
- code: z.enum(["success"]),
- invites: z.array(
- z.object({
- peInviteId: z.string().uuid(),
- peInviteUuid: z.string().uuid(),
- name: z.string(),
- limitVal: z.number().int().nullable(),
- countVal: z.number().int(),
- expirationDate: z.string().datetime().nullable(),
- }),
- ),
- }),
- };
- GET_InviteInfo = {
- req: {
- params: z.object({
- peInviteUuid: z.string().uuid(),
- }),
- },
- res: z.object({
- code: z.enum(["success"]),
- invite: z.object({
- peInviteId: z.string().uuid(),
- peInviteUuid: z.string().uuid(),
- peId: z.string().uuid(),
- peName: z.string(),
- peOwnerId: z.string().uuid(),
- expirationDate: z.string().datetime().nullable(),
- peOwnerIdentity: z.string(),
- }),
- }),
- };
- POST_AcceptInvite = {
- req: {
- params: z.object({
- peInviteUuid: z.string().uuid(),
- }),
- },
- res: z.discriminatedUnion("code", [
- z.object({
- code: z.literal("success"),
- peId: z.string().uuid(),
- }),
- z.object({
- code: z.literal("inviteNotFound"),
- }),
- z.object({
- code: z.literal("inviteLimitExceeded"),
- }),
- z.object({
- code: z.literal("peMemberAlreadyExists"),
- }),
- z.object({
- code: z.literal("peMemberInviteAlreadyExists"),
- }),
- z.object({
- code: z.literal("inviteExpired"),
- }),
- ]),
- };
- PATCH_PeMembersRequests = {
- req: {
- body: z.array(
- z.object({
- peMemberRequestId: z.string().uuid(),
- status: z.enum(["ACCEPTED", "REJECTED"]),
- }),
- ),
- },
- res: z.object({
- code: z.enum(["success"]),
- }),
- };
- GET_MyPesForActivity = {
- res: z.object({
- code: z.enum(["success"]),
- pes: z.array(
- z.object({
- peId: z.string().uuid(),
- peTypeId: z.string().uuid(),
- peTypeCode: z.string(),
- peTypeName: z.string(),
- eventInstId: z.string().uuid(),
- ownerId: z.string().uuid(),
- name: z.string(),
- members: z.array(
- z.object({
- peMemberId: z.string().uuid(),
- userId: z.string().uuid(),
- email: z.string().email(),
- fields: z.array(
- CustomFieldWithValue.extend({
- userEfId: z.string().uuid(),
- }),
- ),
- }),
- ),
- fields: z.array(
- CustomFieldWithValue.extend({
- peFfId: z.string().uuid(),
- }),
- ),
- }),
- ),
- }),
- };
- DELETE_PeMember = {
- req: {
- params: z.object({
- peMemberId: z.string().uuid(),
- }),
- },
- res: z.object({
- code: z.enum(["success"]),
- }),
- };
- GET_RelatedActivityRegsToPe = {
- req: {
- params: z.object({
- peId: z.string().uuid(),
- }),
- },
- res: z.object({
- code: z.enum(["success"]),
- activityRegs: z.array(
- z.object({
- activityRegId: z.string().uuid(),
- activityRegNumber: z.string(),
- }),
- ),
- }),
- };
- }
- export const clientPartEntitiesApi = new ClientPartEntitiesApi();
|