001-view_public_events.sql 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. CREATE OR REPLACE VIEW view_public_events AS
  2. SELECT
  3. b.uuid,
  4. b.organization_id AS organizationId,
  5. o.name AS structureName,
  6. b.name,
  7. b.description,
  8. b.url,
  9. IF(b.helloAssoSlug is not null, 1, 0) AS hasHelloAssoForm,
  10. b.datetimeStart,
  11. b.datetimeEnd,
  12. b.gender_id as gender,
  13. COALESCE(b.priceMini, 0) AS priceMini,
  14. COALESCE(b.priceMaxi, 0) AS priceMaxi,
  15. null as categoryCode,
  16. p.name AS placeName,
  17. p.description AS placeDescription,
  18. p.floorSize AS placeFloorSize,
  19. p.capacity AS placeCapacity,
  20. ap.addressCity AS city,
  21. ap.postalCode,
  22. TRIM(BOTH ' ' FROM CONCAT( IFNULL(ap.streetAddress, ''), ' ', IFNULL(ap.streetAddressSecond, ''), ' ', IFNULL(ap.streetAddressThird, ''))) AS streetAddress,
  23. ap.longitude,
  24. ap.latitude,
  25. r.name AS roomName,
  26. r.description AS roomDescription,
  27. r.localisation AS roomLocalisation,
  28. r.capacity AS roomCapacity,
  29. r.floorSize AS roomFloorSize,
  30. a2.longitude as structureLongitude,
  31. a2.latitude as structureLatitude,
  32. IF(b.image_id is not null, CONCAT('https://api.opentalent.fr/api/public/files/', b.image_id, '/download/lg'), null) AS imageUrl,
  33. IF(b.image_id is not null, CONCAT('https://api.opentalent.fr/api/public/files/', b.image_id, '/download/md'), null) AS thumbnailUrl,
  34. (SELECT GROUP_CONCAT(DISTINCT CONCAT(f.code))
  35. FROM event_categories AS ec
  36. LEFT JOIN Categories AS cs ON(cs.id = ec.categories_id)
  37. LEFT JOIN Familly AS f ON(f.id = cs.familly_id)
  38. WHERE ec.event_id = b.id
  39. ) AS categories,
  40. 'opentalent' as origin,
  41. b.image_id as imgId,
  42. b.id as entityId
  43. FROM Booking AS b
  44. INNER JOIN Organization o ON o.id = b.organization_id
  45. INNER JOIN Parameters par ON par.id = o.parameters_id
  46. LEFT JOIN Place AS p ON (p.id = b.place_id OR p.id = b.placeSystem_id)
  47. LEFT JOIN AddressPostal AS ap ON (ap.id = p.addressPostal_id)
  48. LEFT JOIN Room AS r ON (r.id = b.room_id)
  49. LEFT JOIN opentalent.OrganizationAddressPostal oa2 on (oa2.organization_id = o.id and oa2.type='ADDRESS_HEAD_OFFICE')
  50. LEFT JOIN opentalent.AddressPostal a2 on (oa2.addressPostal_id = a2.id)
  51. WHERE b.discr = 'event'
  52. AND b.datetimeEnd >= NOW()
  53. AND b.visibility = 'PUBLIC_VISIBILITY'
  54. AND b.isCanceled = 0
  55. AND b.gender_id <> 7
  56. UNION
  57. SELECT
  58. aw.uuid,
  59. null AS organizationId,
  60. NULL AS structureName,
  61. aw.name,
  62. aw.description,
  63. aw.deepLink AS url,
  64. 0 AS hasHelloAssoForm,
  65. aw.datetimeStart,
  66. aw.datetimeEnd,
  67. NULL as gender,
  68. aw.priceMini,
  69. aw.priceMaxi,
  70. aw.subCategory AS categoryCode,
  71. aw.place AS placeName,
  72. NULL AS placeDescription,
  73. NULL AS placeFloorSize,
  74. NULL AS placeCapacity,
  75. aw.city,
  76. aw.postalCode,
  77. aw.streetAddress,
  78. aw.longitude,
  79. aw.latitude,
  80. NULL AS roomName,
  81. NULL AS roomDescription,
  82. NULL AS roomLocalisation,
  83. NULL AS roomCapacity,
  84. NULL AS roomFloorSize,
  85. NULL as structureLongitude,
  86. NULL as structureLatitude,
  87. aw.largeimage AS imageUrl,
  88. aw.mediumimage as thumbnailUrl,
  89. aw.categoryCode AS categories,
  90. 'awin' as origin,
  91. NULL as imgId,
  92. aw.id as entityId
  93. FROM AwinProduct as aw
  94. WHERE
  95. aw.datetimeEnd >= NOW()
  96. AND aw.datetimeStart IS NOT NULL;