role.schema.mt.ts 1005 B

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