participants.sql 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. CREATE TYPE vote.statut_participant AS ENUM('EN_ATTENTE', 'PAYE_CHEQUE', 'PAYE_ESPECES', 'VIREMENT_BANCAIRE', 'VIREMENT_PAYPAL', 'ORGA', 'GUEST');
  2. CREATE TYPE vote.mode_paiement AS ENUM('CHEQUE', 'VIREMENT', 'PAYPAL', 'ESPECES', 'AUTRE');
  3. CREATE CAST (varchar AS vote.statut_participant) WITH INOUT AS IMPLICIT;
  4. CREATE CAST (varchar AS vote.mode_paiement) WITH INOUT AS IMPLICIT;
  5. CREATE TABLE IF NOT EXISTS vote.participants
  6. (
  7. date_creation timestamp without time zone NOT NULL DEFAULT now(),
  8. date_modification timestamp without time zone,
  9. numero_participant integer NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
  10. flag_actif boolean DEFAULT true,
  11. nom character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  12. prenom character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  13. pseudonyme character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  14. groupe character varying(128) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  15. mot_de_passe character varying(256) COLLATE pg_catalog."default" NOT NULL DEFAULT '',
  16. flag_expire boolean DEFAULT false,
  17. date_expiration timestamp without time zone DEFAULT NULL,
  18. delai_deconnexion integer NOT NULL DEFAULT 15,
  19. adresse character varying(256) COLLATE pg_catalog."default" DEFAULT '',
  20. code_postal character varying(16) COLLATE pg_catalog."default" DEFAULT '',
  21. ville character varying(128) COLLATE pg_catalog."default" DEFAULT '',
  22. pays character varying(128) COLLATE pg_catalog."default" DEFAULT 'France',
  23. numero_telephone character varying(32) COLLATE pg_catalog."default" DEFAULT '',
  24. email character varying(128) COLLATE pg_catalog."default" DEFAULT '',
  25. statut vote.statut_participant DEFAULT 'EN_ATTENTE',
  26. flag_machine boolean DEFAULT true,
  27. commentaire text,
  28. flag_jour1 boolean DEFAULT false,
  29. flag_jour2 boolean DEFAULT false,
  30. flag_jour3 boolean DEFAULT false,
  31. flag_dodo_sur_place boolean DEFAULT true,
  32. flag_amigabus boolean DEFAULT false,
  33. mode_paiement vote.mode_paiement DEFAULT 'CHEQUE',
  34. date_inscription timestamp without time zone NOT NULL DEFAULT now(),
  35. somme_recue decimal(10,2) DEFAULT '0.00',
  36. flag_arrive boolean DEFAULT false
  37. )
  38. TABLESPACE vote;
  39. ALTER TABLE IF EXISTS vote.participants OWNER to vote;
  40. CREATE INDEX IF NOT EXISTS ix_nomParticipant ON vote.participants USING btree (nom) TABLESPACE vote;
  41. CREATE UNIQUE INDEX IF NOT EXISTS ix_pseudonymeParticipant ON vote.participants USING btree (pseudonyme) TABLESPACE vote;
  42. CREATE FUNCTION vote.dateModificationParticipant() RETURNS TRIGGER AS $$
  43. BEGIN
  44. NEW.date_modification = now();
  45. return NEW;
  46. END;
  47. $$ LANGUAGE 'plpgsql';
  48. ALTER FUNCTION vote.dateModificationParticipant() OWNER TO vote;
  49. CREATE OR REPLACE TRIGGER dateModificationParticipant BEFORE UPDATE ON vote.participants FOR EACH ROW EXECUTE FUNCTION vote.dateModificationParticipant();