db-shema.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. import { z } from "zod";
  2. // TODO добавть везде uuid
  3. const ZDbShema = {
  4. events_management: {
  5. events: {
  6. event_id: z.string().uuid(),
  7. local_name: z.string(),
  8. timezone: z.string(),
  9. company_id: z.string().uuid(),
  10. },
  11. event_dates: {
  12. event_id: z.string().uuid(),
  13. date: z.date(),
  14. },
  15. program_points: {
  16. program_point_id: z.string().uuid(),
  17. name: z.string().min(1),
  18. start_date: z.date(),
  19. end_date: z.date(),
  20. event_id: z.string().uuid(),
  21. room_id: z.string().uuid().nullable(),
  22. group: z.string(),
  23. is_internal: z.boolean(),
  24. },
  25. },
  26. companies_management: {
  27. companies: {
  28. company_id: z.string().uuid(),
  29. name: z.string(),
  30. owner_id: z.string().uuid(),
  31. timezone: z.string(),
  32. },
  33. },
  34. tasks_management: {
  35. tasks: {
  36. task_id: z.string().uuid(),
  37. name: z.string(),
  38. start_date: z.date().nullable(),
  39. end_date: z.date().nullable(),
  40. accountable_id: z.string().uuid().nullable(),
  41. is_todo: z.boolean(),
  42. program_point_id: z.string().uuid().nullable(),
  43. room_id: z.string().uuid().nullable(),
  44. task_block_id: z.string().uuid(),
  45. },
  46. task_blocks: {
  47. task_block_id: z.string().uuid(),
  48. name: z.string(),
  49. event_id: z.string().uuid(),
  50. },
  51. task_executors: {
  52. task_id: z.string().uuid(),
  53. user_id: z.string().uuid(),
  54. },
  55. },
  56. locations_management: {
  57. locations: {
  58. location_id: z.string().uuid(),
  59. name: z.string(),
  60. event_id: z.string().uuid(),
  61. },
  62. rooms: {
  63. room_id: z.string().uuid(),
  64. name: z.string(),
  65. location_id: z.string().uuid(),
  66. parent_id: z.string().uuid().nullable(),
  67. },
  68. event_locations: {
  69. event_id: z.string().uuid(),
  70. location_id: z.string().uuid(),
  71. },
  72. },
  73. users_management: {
  74. users: {
  75. user_id: z.string().uuid(),
  76. email: z.string().email(),
  77. name: z.string(),
  78. password: z.string(),
  79. wrong_pass_tries: z.number(),
  80. },
  81. user_refresh_tokens: {
  82. refresh_token: z.string(),
  83. user_id: z.string().uuid(),
  84. },
  85. confirm_pins: {
  86. transaction_id: z.string().uuid(),
  87. email: z.string().email(),
  88. confirm_pin: z.number().min(1000).max(9999),
  89. create_time: z.date(),
  90. wrong_pin_tries: z.number(),
  91. },
  92. },
  93. permissions_management: {
  94. user_roles: {
  95. user_id: z.string().uuid(),
  96. role_id: z.string().uuid(),
  97. entity_id: z.string().uuid(),
  98. },
  99. non_default_roles_overrides: {
  100. entity_id: z.string().uuid(),
  101. role_id: z.string().uuid(),
  102. permission_id: z.string(),
  103. permission_value_id: z.string(),
  104. },
  105. roles: {
  106. role_id: z.string().uuid(),
  107. name: z.string(),
  108. description: z.string(),
  109. entity_id: z.string().uuid().nullable(),
  110. entity_type_id: z.string(),
  111. is_system: z.boolean(),
  112. },
  113. permissions: {
  114. permission_id: z.string().uuid(),
  115. name: z.string(),
  116. entity_type_id: z.string(),
  117. },
  118. permission_values: {
  119. permission_value_id: z.string(),
  120. permission_id: z.string(),
  121. name: z.string(),
  122. is_default: z.boolean(),
  123. parent_id: z.string().uuid().nullable(),
  124. },
  125. cached_user_permissions: {
  126. user_id: z.string().uuid(),
  127. entity_id: z.string().uuid(),
  128. permission_id: z.string(),
  129. permission_value_id: z.string(),
  130. },
  131. default_roles_overrides: {
  132. role_id: z.string().uuid(),
  133. permission_id: z.string(),
  134. permission_value_id: z.string(),
  135. },
  136. },
  137. entities_management: {
  138. entities: {
  139. entity_id: z.string().uuid(),
  140. entity_type_id: z.string(),
  141. parent_id: z.string().uuid().nullable(),
  142. },
  143. entity_types: {
  144. entity_type_id: z.string().uuid(),
  145. name: z.string(),
  146. },
  147. },
  148. };
  149. export { ZDbShema };