regions-api.tsx 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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. future: 0 | 1;
  93. }[];
  94. tcc: {
  95. flag1: string;
  96. flag2: string | null;
  97. id: number;
  98. name: string;
  99. visited: 0 | 1;
  100. }[];
  101. };
  102. }
  103. export interface PostAddVisit {
  104. token: string;
  105. region: number;
  106. quality: number;
  107. year_from: number;
  108. month_from: number;
  109. day_from: number;
  110. year_to: number;
  111. month_to: number;
  112. day_to: number;
  113. completed: 0 | 1;
  114. hidden: 0 | 1;
  115. }
  116. export interface PostUpdateVisit {
  117. token: string;
  118. region: number;
  119. id: number;
  120. quality: number;
  121. year_from: number;
  122. month_from: number;
  123. day_from: number;
  124. year_to: number;
  125. month_to: number;
  126. day_to: number;
  127. completed: 0 | 1;
  128. hidden: 0 | 1;
  129. }
  130. export interface PostDeleteVisit {
  131. token: string;
  132. id: number;
  133. }
  134. export interface PostUnvisit {
  135. token: string;
  136. region: number;
  137. }
  138. export interface PostGetSingleRegionReturn {
  139. not_visited?: 0 | 1;
  140. region?: {
  141. best_visit_quality: number;
  142. first_visited_in_year: number | null;
  143. id: number;
  144. last_visited_in_year: number | null;
  145. no_of_visits: number;
  146. };
  147. }
  148. export const regionsApi = {
  149. getMegaregions: (token: string) =>
  150. request.postForm<PostGetMegaReturn>(API.GET_MEGAREGIONS, { token }),
  151. getRegionsQe: (token: string, megaregion?: number, country?: number) =>
  152. request.postForm<PostGetRegionsQeReturn>(API.GET_REGIONS_QE, { megaregion, country, token }),
  153. setNmRegion: (data: PostSetNmRegion) => request.postForm<ResponseType>(API.SET_NM_REGION, data),
  154. setTCCRegion: (data: PostSetTCCRegion) =>
  155. request.postForm<ResponseType>(API.SET_TCC_REGION, data),
  156. getVisits: (token: string, region: number) =>
  157. request.postForm<PostGetVisitsReturn>(API.GET_VISITS_TO_REGION, { token, region }),
  158. getRegions: (
  159. token: string,
  160. megaregion: number | 'all' | undefined,
  161. country: number | 'all' | undefined
  162. ) => request.postForm<PostGetRegionsReturn>(API.GET_REGIONS, { megaregion, country, token }),
  163. addVisit: (data: PostAddVisit) => request.postForm<ResponseType>(API.ADD_VISIT, data),
  164. updateVisit: (data: PostUpdateVisit) => request.postForm<ResponseType>(API.UPDATE_VISIT, data),
  165. deleteVisit: (data: PostDeleteVisit) => request.postForm<ResponseType>(API.DELETE_VISIT, data),
  166. getSingleRegion: (data: PostDeleteVisit) =>
  167. request.postForm<PostGetSingleRegionReturn>(API.GET_SINGLE_REGION, data),
  168. setNotVisited: (data: PostUnvisit) => request.postForm<ResponseType>(API.SET_NOT_VISITED, data)
  169. };