participants.sql 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. CREATE TYPE vote.status_participant AS ENUM('En attente', 'Payé chèque', 'Payé espèces', 'Orga', 'Virement bancaire', 'Virement Paypal', 'Guest');
  2. CREATE TYPE vote.mode_paiement AS ENUM('Chèque', 'Virement', 'Paypal', 'Espèces', 'Autre');
  3. CREATE TABLE IF NOT EXISTS vote.participants
  4. (
  5. date_creation timestamp without time zone NOT NULL DEFAULT now(),
  6. date_modification timestamp without time zone,
  7. numero_participant integer NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  8. flag_actif boolean DEFAULT true,
  9. nom character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  10. prenom character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  11. pseudonyme character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  12. groupe character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  13. mot_de_passe character varying(256) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  14. flag_expire boolean DEFAULT false,
  15. date_expiration timestamp without time zone DEFAULT NULL,
  16. delai_deconnexion integer NOT NULL DEFAULT 15,
  17. adresse character varying(256) COLLATE pg_catalog."default" DEFAULT '',
  18. code_postal character varying(16) COLLATE pg_catalog."default" DEFAULT '',
  19. ville character varying(128) COLLATE pg_catalog."default" DEFAULT '',
  20. pays character varying(128) COLLATE pg_catalog."default" DEFAULT 'France',
  21. numero_telephone character varying(32) COLLATE pg_catalog."default" DEFAULT '',
  22. email character varying(128) COLLATE pg_catalog."default" DEFAULT '',
  23. status vote.status_participant DEFAULT 'En attente',
  24. flag_machine boolean DEFAULT true,
  25. commentaire text,
  26. flag_jour1 boolean DEFAULT false,
  27. flag_jour2 boolean DEFAULT false,
  28. flag_jour3 boolean DEFAULT false,
  29. flag_dodo_sur_place boolean DEFAULT true,
  30. flag_amigabus boolean DEFAULT false,
  31. mode_paiement vote.mode_paiement DEFAULT 'Chèque',
  32. date_inscription timestamp without time zone NOT NULL DEFAULT now(),
  33. somme_recue decimal(10,2) DEFAULT '0.00',
  34. flag_arrive boolean DEFAULT false
  35. )
  36. TABLESPACE vote;
  37. ALTER TABLE IF EXISTS vote.participants OWNER to vote;
  38. CREATE INDEX IF NOT EXISTS ix_nomParticipant ON vote.participants USING btree (nom) TABLESPACE vote;
  39. CREATE UNIQUE INDEX IF NOT EXISTS ix_pseudonymeParticipant ON vote.participants USING btree (pseudonyme) TABLESPACE vote;
  40. CREATE FUNCTION vote.dateModificationParticipant() RETURNS TRIGGER AS $$
  41. BEGIN
  42. NEW.date_modification = now();
  43. return NEW;
  44. END;
  45. $$ LANGUAGE 'plpgsql';
  46. ALTER FUNCTION vote.dateModificationParticipant() OWNER TO vote;
  47. CREATE OR REPLACE TRIGGER dateModificationParticipant BEFORE UPDATE ON vote.participants FOR EACH ROW EXECUTE FUNCTION vote.dateModificationParticipant();