regions-api.tsx 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. import { request } from '../../../utils';
  2. import { API } from '../../../types';
  3. import { ResponseType } from '../response-type';
  4. export interface PostGetMegaReturn extends ResponseType {
  5. data: {
  6. id: number;
  7. name: string;
  8. }[];
  9. }
  10. export interface PostGetRegionsQeReturn extends ResponseType {
  11. data: {
  12. out_regs: {
  13. id: number;
  14. flag_1: string;
  15. flag_2: string;
  16. region_name: string;
  17. essential: 0 | 1;
  18. quality: number;
  19. year: number;
  20. last: number;
  21. visits: number;
  22. }[];
  23. out_tcc: {
  24. id: number;
  25. flag: string;
  26. flag2: string;
  27. name: string;
  28. visited: number;
  29. }[];
  30. out_mtp: {
  31. mtp_id: number;
  32. flag: string;
  33. flag2: string;
  34. name: string;
  35. visited: number;
  36. }[];
  37. out_dare: {
  38. id: number;
  39. name: string;
  40. flag1: string;
  41. flag2: string | null;
  42. }[];
  43. };
  44. }
  45. export interface PostSetNmRegion {
  46. token: string;
  47. region: number;
  48. first: number;
  49. last: number;
  50. visits: number;
  51. quality: number;
  52. }
  53. export interface PostSetTCCRegion {
  54. token: string;
  55. region: number;
  56. visits: 0 | 1;
  57. }
  58. export interface PostGetVisitsReturn extends ResponseType {
  59. data: {
  60. completed: 0 | 1;
  61. date_from: string;
  62. date_to: string;
  63. day_from: number | null;
  64. day_to: number | null;
  65. hidden: 0 | 1;
  66. id: number;
  67. month_from: number | null;
  68. month_to: number | null;
  69. quality: number;
  70. year_from: number;
  71. year_to: number;
  72. }[];
  73. }
  74. export interface PostGetRegionsReturn extends ResponseType {
  75. data: {
  76. dare: {
  77. flag1: string;
  78. flag2: string | null;
  79. id: number;
  80. name: string;
  81. visited: 0 | 1;
  82. }[];
  83. regions: {
  84. best_visit_quality: number | null;
  85. first_visited_in_year: number | null;
  86. flag1: string;
  87. flag2: string | null;
  88. id: number;
  89. last_visited_in_year: number | null;
  90. name: string;
  91. no_of_visits: number | null;
  92. }[];
  93. tcc: {
  94. flag1: string;
  95. flag2: string | null;
  96. id: number;
  97. name: string;
  98. visited: 0 | 1;
  99. }[];
  100. };
  101. }
  102. export interface PostAddVisit {
  103. token: string;
  104. region: number;
  105. quality: number;
  106. year_from: number;
  107. month_from: number;
  108. day_from: number;
  109. year_to: number;
  110. month_to: number;
  111. day_to: number;
  112. completed: 0 | 1;
  113. hidden: 0 | 1;
  114. }
  115. export interface PostUpdateVisit {
  116. token: string;
  117. region: number;
  118. id: number;
  119. quality: number;
  120. year_from: number;
  121. month_from: number;
  122. day_from: number;
  123. year_to: number;
  124. month_to: number;
  125. day_to: number;
  126. completed: 0 | 1;
  127. hidden: 0 | 1;
  128. }
  129. export interface PostDeleteVisit {
  130. token: string;
  131. id: number;
  132. }
  133. export interface PostUnvisit {
  134. token: string;
  135. region: number;
  136. }
  137. export interface PostGetSingleRegionReturn {
  138. not_visited?: 0 | 1;
  139. region?: {
  140. best_visit_quality: number;
  141. first_visited_in_year: number | null;
  142. id: number;
  143. last_visited_in_year: number | null;
  144. no_of_visits: number;
  145. };
  146. }
  147. export const regionsApi = {
  148. getMegaregions: (token: string) =>
  149. request.postForm<PostGetMegaReturn>(API.GET_MEGAREGIONS, { token }),
  150. getRegionsQe: (token: string, megaregion?: number, country?: number) =>
  151. request.postForm<PostGetRegionsQeReturn>(API.GET_REGIONS_QE, { megaregion, country, token }),
  152. setNmRegion: (data: PostSetNmRegion) => request.postForm<ResponseType>(API.SET_NM_REGION, data),
  153. setTCCRegion: (data: PostSetTCCRegion) =>
  154. request.postForm<ResponseType>(API.SET_TCC_REGION, data),
  155. getVisits: (token: string, region: number) =>
  156. request.postForm<PostGetVisitsReturn>(API.GET_VISITS_TO_REGION, { token, region }),
  157. getRegions: (
  158. token: string,
  159. megaregion: number | 'all' | undefined,
  160. country: number | 'all' | undefined
  161. ) => request.postForm<PostGetRegionsReturn>(API.GET_REGIONS, { megaregion, country, token }),
  162. addVisit: (data: PostAddVisit) => request.postForm<ResponseType>(API.ADD_VISIT, data),
  163. updateVisit: (data: PostUpdateVisit) => request.postForm<ResponseType>(API.UPDATE_VISIT, data),
  164. deleteVisit: (data: PostDeleteVisit) => request.postForm<ResponseType>(API.DELETE_VISIT, data),
  165. getSingleRegion: (data: PostDeleteVisit) =>
  166. request.postForm<PostGetSingleRegionReturn>(API.GET_SINGLE_REGION, data),
  167. setNotVisited: (data: PostUnvisit) => request.postForm<ResponseType>(API.SET_NOT_VISITED, data)
  168. };