Files
Q-A_test/apps/web/src/entities/issue/issue.schema.ts
T
SDI 12e4f17b62
CI / lint (push) Failing after 49s
CI / format (push) Failing after 1m6s
CI / typecheck (push) Successful in 1m8s
CI / test (push) Failing after 1m8s
first commit
2026-07-15 18:05:12 +09:00

45 lines
1.3 KiB
TypeScript

/**
* Copyright 2025 LY Corporation
*
* LY Corporation licenses this file to you under the Apache License,
* version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
import { z } from 'zod';
import { categorySchema } from '../category/category.schema';
export const issueSchema = z.object({
id: z.number(),
name: z.string().trim().min(1).max(30),
description: z.string().trim().max(50).nullable(),
feedbackCount: z.number(),
status: z.union([
z.literal('INIT'),
z.literal('ON_REVIEW'),
z.literal('IN_PROGRESS'),
z.literal('RESOLVED'),
z.literal('PENDING'),
]),
externalIssueId: z.string().trim().optional(),
createdAt: z.string(),
updatedAt: z.string().nullable(),
category: categorySchema.nullable(),
});
export const issueFormSchema = issueSchema.pick({
name: true,
description: true,
status: true,
externalIssueId: true,
});