Afrostream / afrostream-back-end

Simple backo for afrostream
1 stars 0 forks source link

enhancement: filtrage geo & diffuseur de l'api #302

Open syndr0m opened 8 years ago

syndr0m commented 8 years ago

Il faut que l'on puisse filtrer la diffusion du catalogue géographiquement, et suivant les diffuseurs

pour cela, on attache à chaque requête 2 notions : country & broadcaster

on associe à notre catalogue ces deux notions, au travers de nouveaux champs "countries" et "broadcasters" dans les tables Categories, Movies, Seasons, Episodes, Videos et Licensors

on applique un filtre lors des requêtes, tel que si l'information est null dans le catalogue => diffusion autorisée, mais si un filtre existe => il s'applique.

le filtrage peut s'effectuer au niveau du catalogue (filtre sur les tables Movies ou Licensors), ou au niveau de chaque vidéo (filtre sur la table Videos)

Il faut pour cela :

CREATE TABLE "Broadcasters"
(
  _id serial NOT NULL,
  name character varying(128),
  fqdn character varying(128),
  CONSTRAINT "Broadcasters_pkey" PRIMARY KEY ("_id ")
)
WITH (
  OIDS=FALSE
);
CREATE TABLE "BroadcasterClients"
(
  _id serial NOT NULL,
  broadcasterId integer NOT NULL, -- Boadcasters._id
  clientId uuid NOT NULL,  -- Clients._id
  CONSTRAINT "BroadcasterClients_pkey" PRIMARY KEY ("broadcasterId", "clientId"),
  CONSTRAINT "BroadcasterClients_BroadcasterId_fkey" FOREIGN KEY ("broadcasterId")
      REFERENCES "Broadcasters" (_id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT "BroadcasterClients_ClientId_fkey" FOREIGN KEY ("clientId")
      REFERENCES "Clients" (_id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE "Categorys" ADD COLUMN "countries" character varying(2) ARRAY;
ALTER TABLE "Categorys" ADD COLUMN "broadcasters" integer ARRAY;
ALTER TABLE "Movies" ADD COLUMN "countries" character varying(2) ARRAY;
ALTER TABLE "Movies" ADD COLUMN "broadcasters" integer ARRAY;
ALTER TABLE "Seasons" ADD COLUMN "countries" character varying(2) ARRAY;
ALTER TABLE "Seasons" ADD COLUMN "broadcasters" integer ARRAY;
ALTER TABLE "Episodes" ADD COLUMN "countries" character varying(2) ARRAY;
ALTER TABLE "Episodes" ADD COLUMN "broadcasters" integer ARRAY;
ALTER TABLE "Videos" ADD COLUMN "countries" character varying(2) ARRAY;
ALTER TABLE "Videos" ADD COLUMN "broadcasters" integer ARRAY;
--ALTER TABLE "Licensors" ADD COLUMN "countries" character varying(2) ARRAY;
--ALTER TABLE "Licensors" ADD COLUMN "broadcasters" integer ARRAY;
ludobos commented 8 years ago

Je fais quelques remarques pour qu'on améliore notre compréhension du projet : chaque film et serie d'un licensor peut avoir des droits pays différent donc je ne pense pas que ce soit nécessaire de lier licensor et category à un pays

pour la recherche, peut-etre faudra-t-il rajouter la liste des pays pour les assets pour les filtrer, voir mettre chaque asset par pays (du coup si 35 pays, mettre 35 assets, et le premier filtre doit se faire sur le pays,

pour certains broadcasters, la notion de pays n'existe pas