This commit is contained in:
David Arranz 2019-07-17 16:47:27 +02:00
parent 9492afe5ad
commit 86d9af63a9
13 changed files with 63 additions and 151 deletions

View File

@ -20,10 +20,13 @@ module.exports = function (sequelize, DataTypes) {
type: DataTypes.TEXT, type: DataTypes.TEXT,
allowNull: true allowNull: true
}, },
date: { init_date: {
type: DataTypes.DATE, type: DataTypes.DATE,
allowNull: false, allowNull: false,
}, },
end_date: {
type: DataTypes.DATE,
},
init_available_date: { init_available_date: {
type: DataTypes.DATE, type: DataTypes.DATE,
}, },
@ -109,22 +112,24 @@ module.exports = function (sequelize, DataTypes) {
Event.UserCreate = Event.belongsTo(models.User, { foreignKey: 'userId', as: "user" }); Event.UserCreate = Event.belongsTo(models.User, { foreignKey: 'userId', as: "user" });
Event.Venue = Event.belongsTo(models.Venue, { foreignKey: 'venueId', as: "venue" }); Event.Venue = Event.belongsTo(models.Venue, { foreignKey: 'venueId', as: "venue" });
Event.Schedule = Event.hasMany(models.EventSchedule, { foreignKey: 'eventId', as: "schedule" }); Event.Details = Event.hasMany(models.EventDetail, { foreignKey: 'eventId', as: "details" });
Event.Comments = Event.hasMany(models.Comment, { //OJOJOJOJOJOJOJJOJ
foreignKey: 'entityId', // OJO GENERA UN FOREIGN KEY Con eventos y habrá ID de otras entidades que no exitan en la tabla eventos, porque son post o speakers
scope: { // Event.Comments = Event.hasMany(models.Comment, {
entityName: 'event' // foreignKey: 'entityId',
}, // scope: {
as: "comments" // entityName: 'event'
}); // },
// as: "comments"
// });
Event.Multimedias = Event.hasMany(models.Multimedia, { // Event.Multimedias = Event.hasMany(models.Multimedia, {
foreignKey: 'entityId', // foreignKey: 'entityId',
scope: { // scope: {
entityName: 'event' // entityName: 'event'
}, // },
as: { singular: 'multimedia', plural: 'multimedias' }}); // as: { singular: 'multimedia', plural: 'multimedias' }});
Event.Reservations = Event.hasMany(models.EventReservation, { foreignKey: 'eventId', as: "reservations" }); Event.Reservations = Event.hasMany(models.EventReservation, { foreignKey: 'eventId', as: "reservations" });
Event.Inscriptions = Event.hasMany(models.EventInscription, { foreignKey: 'eventId', as: "inscriptions" }); Event.Inscriptions = Event.hasMany(models.EventInscription, { foreignKey: 'eventId', as: "inscriptions" });
@ -139,10 +144,10 @@ module.exports = function (sequelize, DataTypes) {
} }
}); });
Event.addScope('includeSchedule', () => { Event.addScope('includeDetails', () => {
return { return {
include: [ include: [
{ model: sequelize.models.EventSchedule, as: 'schedule' } { model: sequelize.models.EventDetail, as: 'details' }
] ]
} }
}); });
@ -150,8 +155,8 @@ module.exports = function (sequelize, DataTypes) {
Event.addScope('includeSpeakers', () => { Event.addScope('includeSpeakers', () => {
return { return {
include: [{ include: [{
model: sequelize.models.EventSchedule, model: sequelize.models.EventDetail,
as: 'schedule', as: 'eventdetail',
where: { where: {
speakerId: { speakerId: {
[Sequelize.Op.ne]: null [Sequelize.Op.ne]: null

View File

@ -35,7 +35,7 @@ routes.get('/events/next',
PaginateMiddleware.middleware(), PaginateMiddleware.middleware(),
SortMiddleware.middleware({ default: "init_available_date" }), SortMiddleware.middleware({ default: "init_available_date" }),
eventController.find({ eventController.find({
scopes: ['defaultScope', 'next', 'includeVenue', 'includeSchedule', 'includeSpeakers'], scopes: ['defaultScope', 'next', 'includeVenue', 'includeDetails', 'includeSpeakers'],
}), }),
//eventController.find //eventController.find
// model.scope('next').findAll(); // model.scope('next').findAll();

View File

@ -18,15 +18,11 @@ const extraMethods = {
if (context.scopes.includes('includeSpeakers')) { if (context.scopes.includes('includeSpeakers')) {
rows = rows.map(event => Object.assign({}, rows = rows.map(event => Object.assign({},
event, event,
{ schedule: undefined }, { details: undefined },
{ speakers: event.schedule.map(schedule => ({ ...schedule.speaker, order: schedule.order }) ) } { speakers: event.details.map(details => ({ ...details.speaker, order: details.order }) ) }
)); ));
} }
/*rows.map(event => {
const info = event.schedule
})*/
return { return {
count: rows.length, count: rows.length,
rows: rows rows: rows
@ -69,7 +65,7 @@ const extraMethods = {
}*/ }*/
// Incluir // Incluir
findOptions.include.push({ /* findOptions.include.push({
model: models.EventSchedule, model: models.EventSchedule,
as: 'schedule', as: 'schedule',
include: { include: {
@ -105,6 +101,7 @@ const extraMethods = {
} catch(error) { } catch(error) {
throw error; throw error;
} }
*/
}, },
fetchOne: async (params, context) => { fetchOne: async (params, context) => {

View File

@ -1,7 +1,7 @@
'use strict'; 'use strict';
module.exports = function (sequelize, DataTypes) { module.exports = function (sequelize, DataTypes) {
const EventSchedule = sequelize.define('EventSchedule', { const EventDetail = sequelize.define('EventDetail', {
id: { id: {
type: DataTypes.UUID, type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4, defaultValue: DataTypes.UUIDV4,
@ -20,22 +20,26 @@ module.exports = function (sequelize, DataTypes) {
}, },
description: { description: {
type: DataTypes.STRING, type: DataTypes.STRING,
}, },
type: {
type: DataTypes.STRING,
default: 'detail', //info, speaker, schedule, detail
}
}, { }, {
indexes: [{ indexes: [{
unique: false, unique: false,
fields: ['speakerId'] fields: ['speakerId']
}], }],
tableName: 'events_schedules', tableName: 'events_details',
freezeTableName: true, freezeTableName: true,
timestamps: true, timestamps: true,
}); });
EventSchedule.associate = function (models) { EventDetail.associate = function (models) {
EventSchedule.Event = EventSchedule.belongsTo(models.Event, { foreignKey: 'eventId', as: "event" }); EventDetail.Event = EventDetail.belongsTo(models.Event, { foreignKey: 'eventId', as: "event" });
EventSchedule.Speaker = EventSchedule.belongsTo(models.Speaker, {foreignKey: 'speakerId', as: "speaker"}); EventDetail.Speaker = EventDetail.belongsTo(models.Speaker, {foreignKey: 'speakerId', as: "speaker"});
}; };
return EventSchedule; return EventDetail;
}; };

View File

@ -63,7 +63,7 @@ module.exports = function (sequelize, DataTypes) {
foreignKey: 'speakerId' foreignKey: 'speakerId'
}); });
Speaker.Schedule = Speaker.hasMany(models.EventSchedule, { foreignKey: 'speakerId', as: "schedule" }); Speaker.EventDetails = Speaker.hasMany(models.EventDetail, { foreignKey: 'speakerId', as: "eventdetails" });
Speaker.Questions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId', as: "questions" }); Speaker.Questions = Speaker.hasMany(models.EventQuestion, { foreignKey: 'speakerId', as: "questions" });
Speaker.Multimedias = Speaker.hasMany(models.Multimedia, { Speaker.Multimedias = Speaker.hasMany(models.Multimedia, {

View File

@ -7,13 +7,17 @@ script-carga-bd-values.sql
script-carga-bd-venues.sql script-carga-bd-venues.sql
script-carga-bd-envents_venues_aux.sql script-carga-bd-envents_venues_aux.sql
script-carga-bd-speaker_types.sql script-carga-bd-speaker_types.sql
script-carga-bd-entidades.sql
insert into lqdvi_v2.entities_entities_types (entityid, typeid, createdAt, updatedAt)
select id, '76b17163-a167-11e9-a57c-000c295f0f58', now(), now() from `entities`
insert into lqdvi_v2.`multimedia_files` (id, name, description, typeid, provider, code, url, createdAt, userId, updatedAt) insert into lqdvi_v2.`multimedia_files` (id, name, description, typeid, provider, code, url, createdAt, userId, updatedAt)
SELECT a.id, a.title, a.description, '166fb0aa-5182-4d22-addd-818337194cd7', a.provider, a.code, a.url, a.created, '0939bb2a-d33d-4290-ac81-fc9faa1c015e', now() SELECT a.id, a.title, a.description, '166fb0aa-5182-4d22-addd-818337194cd7', a.provider, a.code, a.url, a.created, '0939bb2a-d33d-4290-ac81-fc9faa1c015e', now()
FROM lqdvi.`video` as a; FROM lqdvi.`video` as a;
insert into lqdvi_v2.`events` (id, name, description, date, init_available_date, end_available_date, gmt, assistants, confirmed, state, typeId, url_streaming, url_poll, url_registration, insert into lqdvi_v2.`events` (id, name, description, init_date, init_available_date, end_available_date, gmt, assistants, confirmed, state, typeId, url_streaming, url_poll, url_registration,
userId, CreatedAt, venueId, campaign_text, UpdatedAt) userId, CreatedAt, venueId, campaign_text, UpdatedAt)
SELECT id, title, address , date, avalible, date, GMT, assistants, confirmed, status, typeId, streaming, poll, url_registration, '0939bb2a-d33d-4290-ac81-fc9faa1c015e', SELECT id, title, address , date, avalible, date, GMT, assistants, confirmed, status, typeId, streaming, poll, url_registration, '0939bb2a-d33d-4290-ac81-fc9faa1c015e',
now(), '120c5a99-6e9b-4cc2-875a-af0f8db00e4b', campaign_text, now() now(), '120c5a99-6e9b-4cc2-875a-af0f8db00e4b', campaign_text, now()
@ -65,9 +69,9 @@ SELECT UUID() as ID, speakerID as eventID, 'speaker', videoId as multimediafilei
FROM lqdvi.`video-speaker` FROM lqdvi.`video-speaker`
where videoId in (select id from lqdvi_v2.multimedia_files); where videoId in (select id from lqdvi_v2.multimedia_files);
//METEMOS LAS AGENDAS DE TODOS LOS CONGRESOS //METEMOS LOS DETALLES DE LOS CONGRESOS AGENDAS DE TODOS LOS CONGRESOS
Cargar Cargar
script-carga-bd-events_schedules.sql script-carga-bd-events_details.sql
//Modificamos la tabla para crear otro campo autoinc que nos rellene el order //Modificamos la tabla para crear otro campo autoinc que nos rellene el order
/* /*
@ -90,8 +94,8 @@ insert into lqdvi_v2.events_questions (id, eventId, speakerId, anonimous, answer
SELECT UUID() as ID, conferenceId, speakerId, anonymous, answered, discared, content, '0939bb2a-d33d-4290-ac81-fc9faa1c015e', created, now() FROM lqdvi.question; SELECT UUID() as ID, conferenceId, speakerId, anonymous, answered, discared, content, '0939bb2a-d33d-4290-ac81-fc9faa1c015e', created, now() FROM lqdvi.question;
//Cargar
script-carga-bd-entidades.sql

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,55 +1,2 @@
-- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64)
--
-- Host: localhost Database: lqdvi_v2
-- ------------------------------------------------------
-- Server version 5.7.26-0ubuntu0.16.04.1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Dumping data for table `events_schedules`
--
LOCK TABLES `events_schedules` WRITE;
/*!40000 ALTER TABLE `events_schedules` DISABLE KEYS */;
/*!40000 ALTER TABLE `events_schedules` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Dumping data for table `speaker_types`
--
LOCK TABLES `speaker_types` WRITE;
/*!40000 ALTER TABLE `speaker_types` DISABLE KEYS */;
INSERT INTO `speaker_types` VALUES ('1','conferenciante','2019-07-03 11:10:43','2019-07-03 11:10:43'); INSERT INTO `speaker_types` VALUES ('1','conferenciante','2019-07-03 11:10:43','2019-07-03 11:10:43');
/*!40000 ALTER TABLE `speaker_types` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Dumping data for table `users`
--
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-07-03 12:54:48

View File

@ -1,3 +1,3 @@
INSERT INTO `users` (id, phone, fbuid, profile_picture, accessibility,state,createdAt,updatedAt)
INSERT INTO `users` VALUES ('0939bb2a-d33d-4290-ac81-fc9faa1c015e','+34686621059',NULL,NULL,'HJAJu6bRrQfVoG0nrET7YQOXe2h1',NULL,NULL,NULL,'media/defaultProfile.png',1,NULL,'2019-06-20 10:10:36','2019-06-20 10:10:36'); VALUES ('0939bb2a-d33d-4290-ac81-fc9faa1c015e','+34686621059','HJAJu6bRrQfVoG0nrET7YQOXe2h1','media/defaultProfile.png',1,'active', '2019-06-20 10:10:36','2019-06-20 10:10:36');

File diff suppressed because one or more lines are too long