Project: Mall App Client: Maiora
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

87 行
2.8 KiB

  1. import Offer from '../models/offer';
  2. import { CoOrdinates } from '../shared/common-types';
  3. import { IOutlet } from '../models/outlet';
  4. export default class Mall {
  5. id: string;
  6. name: string;
  7. is_bookmarked: boolean;
  8. is_archived: boolean;
  9. image_url?: string;
  10. description: string;
  11. offers: Array<string>;
  12. outlets: Array<string>;
  13. rating: number;
  14. distance: number;
  15. location: CoOrdinates;
  16. address: string;
  17. constructor(initializationObject: any) {
  18. if (!initializationObject.hasOwnProperty('id')) {
  19. throw new Error('Missing id');
  20. }
  21. if (!initializationObject.hasOwnProperty('name')) {
  22. throw new Error('Missing name');
  23. }
  24. if (!initializationObject.hasOwnProperty('is_bookmarked')) {
  25. throw new Error('Missing is_bookmarked');
  26. }
  27. if (!initializationObject.hasOwnProperty('is_archived')) {
  28. throw new Error('Missing is_archived');
  29. }
  30. if (!initializationObject.hasOwnProperty('description')) {
  31. throw new Error('Missing description');
  32. }
  33. if (!initializationObject.hasOwnProperty('offers')) {
  34. throw new Error('Missing offers');
  35. }
  36. if (!initializationObject.hasOwnProperty('outlets')) {
  37. throw new Error('Missing outlets');
  38. }
  39. if (!initializationObject.hasOwnProperty('rating')) {
  40. throw new Error('Missing rating');
  41. }
  42. if (!initializationObject.hasOwnProperty('distance')) {
  43. throw new Error('Missing distance');
  44. }
  45. if (!initializationObject.hasOwnProperty('location')) {
  46. throw new Error('Missing location');
  47. }
  48. if (!initializationObject.hasOwnProperty('address')) {
  49. throw new Error('Missing address');
  50. }
  51. this.id = initializationObject.id;
  52. this.name = initializationObject.name;
  53. this.is_bookmarked = initializationObject.is_bookmarked;
  54. this.is_archived = initializationObject.is_archived;
  55. this.description = initializationObject.description;
  56. this.offers = initializationObject.offers;
  57. this.outlets = initializationObject.outlets;
  58. this.rating = initializationObject.rating;
  59. this.distance = initializationObject.distance;
  60. this.location = initializationObject.location;
  61. this.address = initializationObject.address;
  62. if (initializationObject.hasOwnProperty('image_url')) {
  63. this.image_url = initializationObject.image_url;
  64. }
  65. }
  66. }
  67. export interface IMall {
  68. id: string;
  69. name: string;
  70. is_bookmarked: boolean;
  71. is_archived: boolean;
  72. image_url?: string;
  73. description: string;
  74. offers: Array<Offer>;
  75. outlets: Array<IOutlet>;
  76. rating: number;
  77. distance: number;
  78. location: CoOrdinates;
  79. address: string;
  80. }