role.schema.ts 895 B

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