role.schema.ts 867 B

123456789101112131415161718192021222324252627
  1. import { z } from '@hono/zod-openapi';
  2. export type Permission = string;
  3. export const RoleSchema = z.object({
  4. id: z.number().int().positive().openapi({
  5. description: '角色ID',
  6. example: 1
  7. }),
  8. name: z.string().max(50).openapi({
  9. description: '角色名称,唯一标识',
  10. example: 'admin'
  11. }),
  12. description: z.string().max(500).nullable().openapi({
  13. description: '角色描述',
  14. example: '系统管理员角色'
  15. }),
  16. permissions: z.array(z.string()).min(1).openapi({
  17. description: '角色权限列表',
  18. example: ['user:create', 'user:delete']
  19. }),
  20. createdAt: z.date().openapi({ description: '创建时间' }),
  21. updatedAt: z.date().openapi({ description: '更新时间' })
  22. });
  23. export const CreateRoleDto = RoleSchema.omit({ id: true , createdAt: true, updatedAt: true });
  24. export const UpdateRoleDto = RoleSchema.partial();