rawdata

package
v0.0.0-...-02a8c05 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Ce package implémentes les fondements de la gestion des données ACVE. Il est destiné à être utilisé sur le serveur et sur le client. Il définit les types de donneés utilisés et permet de changer d'une représentation à une autre (SQL/JSON/mémoire vive)

Index

Constants

View Source
const CampDeltaTerminated = 45 // jours
View Source
const (
	SignatureMail = "Pour le centre d'inscriptions, <br /> Marie-Pierre BUFFET"
)

Variables

View Source
var (
	ApprofondissementLabels = map[Approfondissement]string{
		AAucun: "Non effectué",
		AAutre: "Approfondissement",
		ACanoe: "Canoë - Kayak",
		AMoto:  "Loisirs motocyclistes",
		ASb:    "Surveillant de baignade",
		AVoile: "Voile",
	}

	BuiltinContrainteLabels = map[BuiltinContrainte]string{
		CAutre:          "Autre",
		CBafa:           "BAFA",
		CBafaEquiv:      "Equivalent BAFA",
		CBafd:           "BAFD",
		CBafdEquiv:      "Equivalent BAFD",
		CCarteId:        "Carte d''identité/Passeport",
		CCarteVitale:    "Carte Vitale",
		CCertMedCuisine: "Certificat médical Cuisine",
		CHaccp:          "Cuisine (HACCP)",
		CInvalide:       "-",
		CPermis:         "Permis de conduire",
		CSb:             "Surveillant de baignade",
		CScolarite:      "Certificat de scolarité",
		CSecour:         "Secourisme (PSC1 - AFPS)",
		CTestNautique:   "Test nautique",
		CVaccin:         "Vaccin",
	}

	BusLabels = map[Bus]string{
		BAller:       "Aller",
		BAllerRetour: "Aller-Retour",
		BAucun:       "-",
		BRetour:      "Retour",
	}

	CompletionLabels = [...]string{
		Complete:     "Complet",
		EnCours:      "En cours",
		Invalide:     "-",
		NonCommencee: "En attente",
	}

	DiplomeLabels = map[Diplome]string{
		DAgreg:      "Agrégé",
		DAssSociale: "Assitante Sociale",
		DAucun:      "Aucun",
		DBafa:       "BAFA Titulaire",
		DBafaStag:   "BAFA Stagiaire",
		DBafd:       "BAFD titulaire",
		DBafdStag:   "BAFD stagiaire",
		DBapaat:     "BAPAAT",
		DBeatep:     "BEATEP",
		DBjeps:      "BPJEPS",
		DCap:        "CAP petit enfance",
		DDeug:       "DEUG",
		DDut:        "DUT carrière sociale",
		DEducSpe:    "Educ. spé.",
		DEje:        "EJE",
		DInstit:     "Professeur des écoles",
		DMonEduc:    "Moniteur educateur",
		DProf:       "Enseignant du secondaire",
		DStaps:      "STAPS",
		DZzautre:    "AUTRE",
	}

	DistributionLabels = [...]string{
		DEspacePerso:     "Téléchargée depuis l'espace de suivi",
		DMail:            "Notifiée par courriel",
		DMailAndDownload: "Téléchargée après notification",
	}

	MessageKindLabels = [...]string{
		MAccuseReception:     "Inscription validée",
		MAttestationPresence: "Attestation de présence",
		MCentre:              "Message du centre",
		MDocuments:           "Document des séjours",
		MFacture:             "Facture",
		MFactureAcquittee:    "Facture acquittée",
		MInscription:         "Moment d'inscription",
		MPaiement:            "",
		MPlaceLiberee:        "Place libérée",
		MResponsable:         "Message",
		MSondage:             "Avis sur le séjour",
		MSupprime:            "Message supprimé",
	}

	ModePaimentLabels = map[ModePaiment]string{
		MPAncv:      "ANCV",
		MPAucun:     "-",
		MPCarte:     "Carte bancaire",
		MPCheque:    "Chèque",
		MPEspece:    "Espèces",
		MPHelloasso: "Hello Asso",
		MPVirement:  "Virement",
	}

	OptionnalBoolLabels = map[OptionnalBool]string{
		OBNon:      "Non",
		OBOui:      "Oui",
		OBPeutEtre: "Peut-être",
	}

	RangMembreAssoLabels = map[RangMembreAsso]string{
		RMABureau:    "Membre du bureau",
		RMACA:        "Membre du C.A.",
		RMAMembre:    "Membre",
		RMANonMembre: "Non membre",
	}

	RoleLabels = map[Role]string{
		RAdjoint:       "Adjoint",
		RAideAnimation: "Aide-animateur",
		RAnimation:     "Animation",
		RAutre:         "Autre",
		RBabysiter:     "Baby-sitter",
		RChauffeur:     "Chauffeur",
		RCuis:          "Cuisine",
		RDirecteur:     "Direction",
		RFactotum:      "Factotum",
		RInfirm:        "Assistant sanitaire",
		RIntend:        "Intendance",
		RLing:          "Lingerie",
		RMen:           "Ménage",
	}

	SatisfactionLabels = [...]string{
		SDécevant:         "Décevant",
		SMoyen:            "Moyen",
		SSatisfaisant:     "Satisfaisant",
		STressatisfaisant: "Très satisfaisant",
		SVide:             "-",
	}

	SchemaPaiementLabels = map[SchemaPaiement]string{
		SPAcompte: "Avec acompte",
		SPTotal:   "Paiement direct (sans acompte)",
	}

	SemaineLabels = map[Semaine]string{
		SComplet: "Camp complet",
		SSe1:     "Semaine 1",
		SSe2:     "Semaine 2",
	}

	SexeLabels = map[Sexe]string{
		SAucun: "-",
		SFemme: "Femme",
		SHomme: "Homme",
	}

	StatutAttenteLabels = [...]string{
		Attente:        "Liste d'attente",
		AttenteReponse: "Attente de confirmation",
		Inscrit:        "Inscrit",
		Refuse:         "Refusé",
	}
)
View Source
var (
	Months = [12]string{
		"Janv.",
		"Févr.",
		"Mars ",
		"Avril",
		"Mai  ",
		"Juin ",
		"Juil.",
		"Août ",
		"Sept.",
		"Octo.",
		"Nove.",
		"Déce.",
	}
	DEPARTEMENTS = map[Departement]string{}/* 101 elements not displayed */

	PERIODES = struct {
		ETE, AUTOMNE, HIVER, PRINTEMPS String
	}{
		"Eté",
		"Automne",
		"Hiver",
		"Printemps",
	}

	OptionsPrix = struct {
		JOUR, SEMAINE, QUOTIENT_FAMILIAL, STATUT string
	}{
		"jour",
		"semaine",
		"quotient_familial",
		"statut",
	}

	QuotientFamilial = []Int{0, 359, 564, 714}

	MaterielSkiNeed = map[string]String{
		"":       "Non demandé",
		"acve":   "Matériel ACVE",
		"loueur": "Loueur",
	}
	MaterielSkiModes = map[string]string{
		"ski":  "Ski",
		"surf": "Surf",
	}
)
View Source
var (
	CoordonnesCentre = Centre{
		Nom:  "ACVE - Centre d'inscriptions",
		Tel:  "04 75 22 03 95",
		Mail: "inscriptions.mpbuffet@acve.asso.fr",
	}

	Asso = InfosAsso{
		Title:   "<b>A</b>ssociation <b>C</b>hrétienne de <b>V</b>acances et de <b>L</b>oisirs",
		Infos:   "Siège social : <i>La Maison du Rocher - 26150 Chamaloc</i> - tél. <i>04 75 22 13 88</i> - <i>www.acve.asso.fr</i> - email: <i>contact@acve.asso.fr</i>",
		Details: "Association loi 1901 - N° Siret: 781 875 851 00037 - code APE: 552EB - Agréments :  Centre de Vacances 26 069 1003 - Jeunesse et Sport : 026ORG0163",
	}

	ExpediteurDefault = []string{CoordonnesCentre.Nom, CoordonnesCentre.Tel, CoordonnesCentre.Mail}
)
View Source
var AnneesCotisations []int

AnneesCotisations représentes les années où une cotisation est demandée, triée du plus récent au plus ancien.

View Source
var ComplementMessagesTables = [5]string{
	"message_documents",
	"message_sondages",
	"message_placeliberes",
	"message_attestations",
	"message_messages",
}

Définit les tables complétant un message (à garder synchronisé)

View Source
var HeadersMails = []Header{
	{Field: mcMail, Label: "Mail"},
	{Field: mcNom, Label: "Nom"},
	{Field: mcPrenom, Label: "Prénom"},
}
View Source
var PaysCode3 = map[string]Pays{}/* 249 elements not displayed */

PaysCode3 associe au code ISO à 3 lettres le pays (2 lettres).

View Source
var PaysMap = map[Pays]string{}/* 249 elements not displayed */

PaysMap associe au code ISO (à 2 lettres) le nom français.

Functions

func Avant

func Avant(d1 Date, d2 Date) bool

Avant renvoie true si le jour et le mois de date1 sont avant (au sens large) le jour et le mois de date2. Ignore les années. Prend en compte le cas du 29 fév.

func CondenseTel

func CondenseTel(t string) string

CondenseTel renvoie le numéro sans espaces ou séparteurs

func ConnectDB

func ConnectDB(credences logs.DB) (*sql.DB, error)

func FormatPrenom

func FormatPrenom(s String) string

func FormatTel

func FormatTel(t string) string

func Html

func Html(r Item, headers []Header) string

Html renvoie le html d'une ligne de tableau (incluant <tr>)

func InsertManyCampContraintes

func InsertManyCampContraintes(tx *sql.Tx, items ...CampContrainte) error

Insert the links CampContrainte in the database.

func InsertManyContenuDocuments

func InsertManyContenuDocuments(tx *sql.Tx, items ...ContenuDocument) error

Insert the links ContenuDocument in the database.

func InsertManyDocumentAides

func InsertManyDocumentAides(tx *sql.Tx, items ...DocumentAide) error

Insert the links DocumentAide in the database.

func InsertManyDocumentCamps

func InsertManyDocumentCamps(tx *sql.Tx, items ...DocumentCamp) error

Insert the links DocumentCamp in the database.

func InsertManyDocumentPersonnes

func InsertManyDocumentPersonnes(tx *sql.Tx, items ...DocumentPersonne) error

Insert the links DocumentPersonne in the database.

func InsertManyDonDonateurs

func InsertManyDonDonateurs(tx *sql.Tx, items ...DonDonateur) error

Insert the links DonDonateur in the database.

func InsertManyEquipierContraintes

func InsertManyEquipierContraintes(tx *sql.Tx, items ...EquipierContrainte) error

Insert the links EquipierContrainte in the database.

func InsertManyGroupeContraintes

func InsertManyGroupeContraintes(tx *sql.Tx, items ...GroupeContrainte) error

Insert the links GroupeContrainte in the database.

func InsertManyGroupeEquipiers

func InsertManyGroupeEquipiers(tx *sql.Tx, items ...GroupeEquipier) error

Insert the links GroupeEquipier in the database.

func InsertManyGroupeParticipants

func InsertManyGroupeParticipants(tx *sql.Tx, items ...GroupeParticipant) error

Insert the links GroupeParticipant in the database.

func InsertManyImageuploadeds

func InsertManyImageuploadeds(tx *sql.Tx, items ...Imageuploaded) error

Insert the links Imageuploaded in the database.

func InsertManyLettredirecteurs

func InsertManyLettredirecteurs(tx *sql.Tx, items ...Lettredirecteur) error

Insert the links Lettredirecteur in the database.

func InsertManyMessageAttestations

func InsertManyMessageAttestations(tx *sql.Tx, items ...MessageAttestation) error

Insert the links MessageAttestation in the database.

func InsertManyMessageDocuments

func InsertManyMessageDocuments(tx *sql.Tx, items ...MessageDocument) error

Insert the links MessageDocument in the database.

func InsertManyMessageMessages

func InsertManyMessageMessages(tx *sql.Tx, items ...MessageMessage) error

Insert the links MessageMessage in the database.

func InsertManyMessagePlaceliberes

func InsertManyMessagePlaceliberes(tx *sql.Tx, items ...MessagePlacelibere) error

Insert the links MessagePlacelibere in the database.

func InsertManyMessageSondages

func InsertManyMessageSondages(tx *sql.Tx, items ...MessageSondage) error

Insert the links MessageSondage in the database.

func InsertManyParticipantEquipiers

func InsertManyParticipantEquipiers(tx *sql.Tx, items ...ParticipantEquipier) error

Insert the links ParticipantEquipier in the database.

func RandString

func RandString(n int, specialChars bool) string

Types

type AgeDate

type AgeDate struct {
	// contains filtered or unexported fields
}

Pour trier par âge manière naturelle, l'âge ne suffit pour distinguer les participants de même âge.

func CalculeAge

func CalculeAge(dateNaissance Date, now time.Time) AgeDate

CalculeAge renvoie l'age qu'aura une personne née le `dateNaissance` au jour `now`

func (AgeDate) Age

func (a AgeDate) Age() int

func (AgeDate) Sortable

func (a AgeDate) Sortable() string

func (AgeDate) String

func (a AgeDate) String() string

type Aide

type Aide struct {
	Id              int64 `json:"id"`
	IdStructureaide int64 `json:"id_structureaide"`
	IdParticipant   int64 `json:"id_participant" sql_on_delete:"CASCADE"`
	Valeur          Euros `json:"valeur"`
	Valide          Bool  `json:"valide"`
	ParJour         Bool  `json:"par_jour"`
	NbJoursMax      Int   `json:"nb_jours_max"`
}

func DeleteAideById

func DeleteAideById(tx DB, id int64) (Aide, error)

Deletes the Aide and returns the item

func ScanAide

func ScanAide(row *sql.Row) (Aide, error)

func SelectAide

func SelectAide(tx DB, id int64) (Aide, error)

SelectAide returns the entry matching id.

func (Aide) Insert

func (item Aide) Insert(tx DB) (out Aide, err error)

Insert Aide in the database and returns the item with id filled.

func (Aide) Montant

func (r Aide) Montant() Montant

func (Aide) Update

func (item Aide) Update(tx DB) (out Aide, err error)

Update Aide in the database and returns the new version.

type Aides

type Aides map[int64]Aide

func ScanAides

func ScanAides(rs *sql.Rows) (Aides, error)

func SelectAides

func SelectAides(tx DB, ids ...int64) (Aides, error)

SelectAides returns the entry matching the given ids.

func SelectAidesByIdParticipants

func SelectAidesByIdParticipants(tx DB, idParticipants ...int64) (Aides, error)

func SelectAidesByIdStructureaides

func SelectAidesByIdStructureaides(tx DB, idStructureaides ...int64) (Aides, error)

func SelectAllAides

func SelectAllAides(tx DB) (Aides, error)

func (Aides) Ids

func (m Aides) Ids() Ids

type Allergies

type Allergies struct {
	Asthme          bool   `json:"asthme,omitempty"`
	Alimentaires    bool   `json:"alimentaires,omitempty"`
	Medicamenteuses bool   `json:"medicamenteuses,omitempty"`
	Autres          string `json:"autres,omitempty"`
	ConduiteATenir  string `json:"conduite_a_tenir,omitempty"`
}

func (Allergies) List

func (a Allergies) List() []string

type Approfondissement

type Approfondissement string

Approfondissement est l'identifiant du type d'appofondissement

const (
	AAucun Approfondissement = ""      // Non effectué
	AAutre Approfondissement = "autre" // Approfondissement
	ASb    Approfondissement = "sb"    // Surveillant de baignade
	ACanoe Approfondissement = "canoe" // Canoë - Kayak
	AVoile Approfondissement = "voile" // Voile
	AMoto  Approfondissement = "moto"  // Loisirs motocyclistes
)

func (Approfondissement) String

func (a Approfondissement) String() String

type B

type B = map[Field]bool

type BasePersonne

type BasePersonne struct {
	Nom                  String      `json:"nom"`
	NomJeuneFille        String      `json:"nom_jeune_fille"`
	Prenom               String      `json:"prenom"`
	DateNaissance        Date        `json:"date_naissance"`
	VilleNaissance       String      `json:"ville_naissance"`
	DepartementNaissance Departement `json:"departement_naissance"`
	Sexe                 Sexe        `json:"sexe"`
	Tels                 Tels        `json:"tels"`
	Mail                 String      `json:"mail"`
	Adresse              String      `json:"adresse"`
	CodePostal           String      `json:"code_postal"`
	Ville                String      `json:"ville"`
	Pays                 Pays        `json:"pays"`
	SecuriteSociale      String      `json:"securite_sociale"`
	Profession           String      `json:"profession"`
	Etudiant             Bool        `json:"etudiant"`
	Fonctionnaire        Bool        `json:"fonctionnaire"`
}

----------------------------------- Personne ----------------------------------- // BasePersonne stocke les champs comparés lors du rapprochement des inscriptions, des équipiers ou des donateurs

func (BasePersonne) Age

func (r BasePersonne) Age() int

func (BasePersonne) AgeDate

func (r BasePersonne) AgeDate() AgeDate

func (BasePersonne) Coordonnees

func (r BasePersonne) Coordonnees() Coordonnees

Coordonnees selectionne les champs des coordonnées.

func (BasePersonne) FNom

func (r BasePersonne) FNom() string

func (BasePersonne) FPrenom

func (r BasePersonne) FPrenom() string

func (BasePersonne) MailItem

func (r BasePersonne) MailItem() Item

func (BasePersonne) NomPrenom

func (r BasePersonne) NomPrenom() String

NomPrenom renvoie NOM Prenom

func (BasePersonne) ToDestinataire

func (r BasePersonne) ToDestinataire() Destinataire

type Bool

type Bool bool

Bool is bool

func (*Bool) Scan

func (s *Bool) Scan(src interface{}) error

Handling of NULL values

func (Bool) String

func (b Bool) String() String

type BuiltinContrainte

type BuiltinContrainte string
const (
	CInvalide       BuiltinContrainte = ""                 // -
	CBafa           BuiltinContrainte = "bafa"             // BAFA
	CBafd           BuiltinContrainte = "bafd"             // BAFD
	CCarteId        BuiltinContrainte = "carte_id"         // Carte d”identité/Passeport
	CPermis         BuiltinContrainte = "permis"           // Permis de conduire
	CSb             BuiltinContrainte = "sb"               // Surveillant de baignade
	CSecour         BuiltinContrainte = "secour"           // Secourisme (PSC1 - AFPS)
	CBafdEquiv      BuiltinContrainte = "bafd_equiv"       // Equivalent BAFD
	CBafaEquiv      BuiltinContrainte = "bafa_equiv"       // Equivalent BAFA
	CCarteVitale    BuiltinContrainte = "carte_vitale"     // Carte Vitale
	CHaccp          BuiltinContrainte = "haccp"            // Cuisine (HACCP)
	CCertMedCuisine BuiltinContrainte = "cert_med_cuisine" // Certificat médical Cuisine
	CScolarite      BuiltinContrainte = "scolarite"        // Certificat de scolarité
	CAutre          BuiltinContrainte = "autre"            // Autre
	CVaccin         BuiltinContrainte = "vaccin"           // Vaccin

	CTestNautique BuiltinContrainte = "test_nautique" // Test nautique
)

type Bus

type Bus string

Bus précise l'utilisation d'une navette

const (
	BAucun       Bus = ""             // -
	BAller       Bus = "aller"        // Aller
	BRetour      Bus = "retour"       // Retour
	BAllerRetour Bus = "aller_retour" // Aller-Retour
)

func (Bus) Match

func (b Bus) Match(critere Bus) bool

Match renvoie `true` si `b` est à prendre en compte pour le critère `critère`

func (Bus) String

func (b Bus) String() String

type BusCamp

type BusCamp struct {
	Actif       bool      `json:"actif"`
	Commentaire String    `json:"commentaire"`
	Aller       TrajetBus `json:"aller"`
	Retour      TrajetBus `json:"retour"`
}

type Camp

type Camp struct {
	Id                int64       `json:"id"`
	Lieu              String      `json:"lieu"`
	Nom               String      `json:"nom"`
	Prix              Euros       `json:"prix"`
	NbPlaces          Int         `json:"nb_places"`
	Password          String      `json:"password"`
	Ouvert            Bool        `json:"ouvert"`
	NbPlacesReservees Int         `json:"nb_places_reservees"`
	NumeroJS          String      `json:"numero_js"`
	NeedEquilibreGf   Bool        `json:"need_equilibre_gf"`
	AgeMin            Int         `json:"age_min"`
	AgeMax            Int         `json:"age_max"`
	Options           OptionsCamp `json:"options"`
	DateDebut         Date        `json:"date_debut"`
	DateFin           Date        `json:"date_fin"`

	ListeVetements ListeVetements `json:"liste_vetements"`
	SchemaPaiement SchemaPaiement `json:"schema_paiement"`
	JoomeoAlbumId  String         `json:"joomeo_album_id"`
	Envois         Envois         `json:"envois"`
	LienCompta     String         `json:"lien_compta"`
	OptionPrix     OptionPrixCamp `json:"option_prix"`

	// Si oui, la procédure d'inscription est simplifiée.
	InscriptionSimple Bool `json:"inscription_simple"`

	Infos String `json:"infos"` // info additionnelle à afficher sur le formulaire
}

Camp représente un séjour proposé par l'ACVE requis participantsimples sql:ADD UNIQUE(id,inscription_simple)

func DeleteCampById

func DeleteCampById(tx DB, id int64) (Camp, error)

Deletes the Camp and returns the item

func ScanCamp

func ScanCamp(row *sql.Row) (Camp, error)

func SelectCamp

func SelectCamp(tx DB, id int64) (Camp, error)

SelectCamp returns the entry matching id.

func (Camp) AgeDebutCamp

func (c Camp) AgeDebutCamp(personne BasePersonne) AgeDate

AgeDebutCamp renvoie l'âge qu'aura `personne` au premier jour du séjour.

func (Camp) AgeFinCamp

func (c Camp) AgeFinCamp(personne BasePersonne) AgeDate

AgeFinCamp renvoie l'âge qu'aura `personne` au dernier jour du séjour.

func (Camp) Annee

func (c Camp) Annee() Int

func (Camp) CheckEnvoisLock

func (c Camp) CheckEnvoisLock() error

CheckEnvoisLock renvoie une erreur si l'envoi des documents est encore verouillé

func (Camp) ColorPeriode

func (c Camp) ColorPeriode() Color

func (Camp) Description

func (c Camp) Description() string

Description renvoi une description détaillée, au format HTML

func (Camp) Duree

func (c Camp) Duree() int

Duree renvoi le nombre de jours du camp, ou 0 si les dates sont manquantes

func (Camp) HasAgeValide

func (c Camp) HasAgeValide(personne BasePersonne) (min StatutAttente, max StatutAttente)

HasAgeValide renvoie le statut correspondant aux âges min et max du séjour Seul le camp DateNaissance de `personne` est utilisé.

func (Camp) Insert

func (item Camp) Insert(tx DB) (out Camp, err error)

Insert Camp in the database and returns the item with id filled.

func (Camp) IsTerminated

func (c Camp) IsTerminated() bool

IsTerminated renvoie `true` si le camp est passé d'au moins `CampDeltaTerminated`. Un camp sans date de fin est considéré comme terminé.

func (Camp) Label

func (c Camp) Label() String

Label renvoie une description courte

func (Camp) Periode

func (c Camp) Periode() String

Periode renvoie la période du camp (cf `PERIODES`)

func (Camp) Update

func (item Camp) Update(tx DB) (out Camp, err error)

Update Camp in the database and returns the new version.

type CampContrainte

type CampContrainte struct {
	IdCamp       int64 `json:"id_camp" sql_on_delete:"CASCADE"`
	IdContrainte int64 `json:"id_contrainte"`
}

CampContrainte représente une contrainte demandée à tous les participants sql:ADD UNIQUE(id_camp, id_contrainte)

func ScanCampContrainte

func ScanCampContrainte(row *sql.Row) (CampContrainte, error)

func (CampContrainte) Delete

func (item CampContrainte) Delete(tx DB) error

Delete the link CampContrainte in the database. Only the 'IdCamp' 'IdContrainte' fields are used.

type CampContraintes

type CampContraintes []CampContrainte

func DeleteCampContraintesByIdCamps

func DeleteCampContraintesByIdCamps(tx DB, idCamps ...int64) (CampContraintes, error)

func DeleteCampContraintesByIdContraintes

func DeleteCampContraintesByIdContraintes(tx DB, idContraintes ...int64) (CampContraintes, error)

func ScanCampContraintes

func ScanCampContraintes(rs *sql.Rows) (CampContraintes, error)

func SelectAllCampContraintes

func SelectAllCampContraintes(tx DB) (CampContraintes, error)

func SelectCampContraintesByIdCamps

func SelectCampContraintesByIdCamps(tx DB, idCamps ...int64) (CampContraintes, error)

func SelectCampContraintesByIdContraintes

func SelectCampContraintesByIdContraintes(tx DB, idContraintes ...int64) (CampContraintes, error)

func (CampContraintes) ByIdCamp

func (items CampContraintes) ByIdCamp() map[int64]CampContraintes

ByIdCamp returns a map with 'IdCamp' as keys.

func (CampContraintes) ByIdContrainte

func (items CampContraintes) ByIdContrainte() map[int64]CampContraintes

ByIdContrainte returns a map with 'IdContrainte' as keys.

type Camps

type Camps map[int64]Camp

func ScanCamps

func ScanCamps(rs *sql.Rows) (Camps, error)

func SelectAllCamps

func SelectAllCamps(tx DB) (Camps, error)

func SelectCamps

func SelectCamps(tx DB, ids ...int64) (Camps, error)

SelectCamps returns the entry matching the given ids.

func (Camps) Ids

func (m Camps) Ids() Ids

type Centre

type Centre struct {
	Nom, Tel, Mail string
}

type ClientUser

type ClientUser struct {
	Id      int64
	Label   string
	IsAdmin bool
}

ClientUser représent un utilisateur, vu par le client

type Color

type Color interface {
	Hex() string
	AHex() string
}

type Colors

type Colors interface {
	// contains filtered or unexported methods
}

Colors indique la couleur de chaque champ

type Completion

type Completion uint
const (
	Invalide     Completion = iota // -
	NonCommencee                   // En attente
	EnCours                        // En cours
	Complete                       // Complet
)

func (Completion) Color

func (c Completion) Color() HexColor

func (Completion) Sortable

func (c Completion) Sortable() string

func (Completion) String

func (c Completion) String() string

type ConstantColor

type ConstantColor struct {
	Color
}

type ContenuDocument

type ContenuDocument struct {
	IdDocument int64  `json:"id_document" sql_on_delete:"CASCADE"`
	Contenu    []byte `json:"contenu"`
	Miniature  []byte `json:"miniature"`
}

ContenuDocument stocke le contenu effectif du document, compressé ainsi qu'une miniature sql:ADD UNIQUE(id_document)

func ScanContenuDocument

func ScanContenuDocument(row *sql.Row) (ContenuDocument, error)

func SelectContenuDocumentByIdDocument

func SelectContenuDocumentByIdDocument(tx DB, idDocument int64) (item ContenuDocument, found bool, err error)

SelectContenuDocumentByIdDocument return zero or one item, thanks to a UNIQUE constraint

func (ContenuDocument) Delete

func (item ContenuDocument) Delete(tx DB) error

Delete the link ContenuDocument in the database. Only the 'IdDocument' fields are used.

type ContenuDocuments

type ContenuDocuments []ContenuDocument

func DeleteContenuDocumentsByIdDocuments

func DeleteContenuDocumentsByIdDocuments(tx DB, idDocuments ...int64) (ContenuDocuments, error)

func ScanContenuDocuments

func ScanContenuDocuments(rs *sql.Rows) (ContenuDocuments, error)

func SelectAllContenuDocuments

func SelectAllContenuDocuments(tx DB) (ContenuDocuments, error)

func SelectContenuDocumentsByIdDocuments

func SelectContenuDocumentsByIdDocuments(tx DB, idDocuments ...int64) (ContenuDocuments, error)

func (ContenuDocuments) ByIdDocument

func (items ContenuDocuments) ByIdDocument() map[int64]ContenuDocument

ByIdDocument returns a map with 'IdDocument' as keys.

type Contrainte

type Contrainte struct {
	Id         int64       `json:"id"`
	IdPersonne OptionnalId `json:"id_personne" sql_on_delete:"CASCADE"` // proprietaire de la contrainte
	IdDocument OptionnalId `json:"id_document"`                         // document à remplir

	Builtin     BuiltinContrainte `json:"builtin"`
	Nom         String            `json:"nom"`
	Description String            `json:"description"`
	// nombre max de documents qui peuvent satisfaire la contrainte
	MaxDocs int `json:"max_docs"`
	// si > 0 indique un document temporaire :
	// les documents liés seront supprimés JoursValide jours
	// après leur dernière modification
	JoursValide int `json:"jours_valide"`
}

Contrainte encode la catégorie d'un document à fournir L'attribut 'builtin' permet d'identifier des contraintes universelles

sql:ADD UNIQUE(nom, builtin, id_personne) sql:ADD CHECK(builtin <> ” OR id_personne IS NOT NULL)

func DeleteContrainteById

func DeleteContrainteById(tx DB, id int64) (Contrainte, error)

Deletes the Contrainte and returns the item

func ScanContrainte

func ScanContrainte(row *sql.Row) (Contrainte, error)

func SelectContrainte

func SelectContrainte(tx DB, id int64) (Contrainte, error)

SelectContrainte returns the entry matching id.

func (Contrainte) Insert

func (item Contrainte) Insert(tx DB) (out Contrainte, err error)

Insert Contrainte in the database and returns the item with id filled.

func (Contrainte) Update

func (item Contrainte) Update(tx DB) (out Contrainte, err error)

Update Contrainte in the database and returns the new version.

type Contraintes

type Contraintes map[int64]Contrainte

func ScanContraintes

func ScanContraintes(rs *sql.Rows) (Contraintes, error)

func SelectAllContraintes

func SelectAllContraintes(tx DB) (Contraintes, error)

func SelectContraintes

func SelectContraintes(tx DB, ids ...int64) (Contraintes, error)

SelectContraintes returns the entry matching the given ids.

func SelectContraintesByIdDocuments

func SelectContraintesByIdDocuments(tx DB, idDocuments ...int64) (Contraintes, error)

func SelectContraintesByIdPersonnes

func SelectContraintesByIdPersonnes(tx DB, idPersonnes ...int64) (Contraintes, error)

func (Contraintes) FindBuiltin

func (c Contraintes) FindBuiltin(categorie BuiltinContrainte) Contrainte

func (Contraintes) Ids

func (m Contraintes) Ids() Ids

type Coordonnees

type Coordonnees struct {
	Tels       Tels   `json:"tels"`
	Mail       String `json:"mail"`
	Adresse    String `json:"adresse"`
	CodePostal String `json:"code_postal"`
	Ville      String `json:"ville"`
	Pays       Pays   `json:"pays"`
}

func (*Coordonnees) Scan

func (s *Coordonnees) Scan(src interface{}) error

func (Coordonnees) Value

func (s Coordonnees) Value() (driver.Value, error)

type Cotisation

type Cotisation []int64

Cotisation donne les années de cotisation

func (Cotisation) Bilan

func (c Cotisation) Bilan() bool

Bilan vérifie si les cotisations ont été payées

func (Cotisation) Map

func (c Cotisation) Map() map[int]bool

func (*Cotisation) Scan

func (s *Cotisation) Scan(src interface{}) error

func (Cotisation) Sortable

func (c Cotisation) Sortable() string

func (Cotisation) String

func (c Cotisation) String() string

String décrit l'état de la cotisation.

func (Cotisation) Value

func (s Cotisation) Value() (driver.Value, error)

type DB

type DB interface {
	Exec(query string, args ...interface{}) (sql.Result, error)
	Query(query string, args ...interface{}) (*sql.Rows, error)
	QueryRow(query string, args ...interface{}) *sql.Row
	Prepare(query string) (*sql.Stmt, error)
}

DB groups transaction like objects

type Data

type Data interface {
	String() string

	// Sortable renvoie une chaîne qui préserve l'ordre
	Sortable() string
}

Data permet d'unifier toutes les données de sorties (listes, fichiers, etc...) Une valeur `nil` est tout à fait possible et doit être gérée par le 'consomateur'

type Date

type Date time.Time

Date représente une date

func (Date) Equals

func (d Date) Equals(other Date) bool

func (Date) MarshalJSON

func (t Date) MarshalJSON() ([]byte, error)

func (*Date) Scan

func (s *Date) Scan(src interface{}) error

func (Date) Sortable

func (d Date) Sortable() string

func (Date) String

func (d Date) String() string

func (Date) Time

func (d Date) Time() time.Time

Time convertit la date en l'objet standard.

func (*Date) UnmarshalJSON

func (t *Date) UnmarshalJSON(data []byte) error

func (Date) Value

func (s Date) Value() (driver.Value, error)

type Departement

type Departement string

Departement code le numéro d'un département, ou le nom du département lui même (pour l'étranger par exemple).

func (Departement) Sortable

func (r Departement) Sortable() string

func (Departement) String

func (r Departement) String() string

type Destinataire

type Destinataire struct {
	NomPrenom  String `json:"nom_prenom,omitempty"`
	Sexe       Sexe   `json:"sexe,omitempty"`
	Adresse    String `json:"adresse,omitempty"`
	CodePostal String `json:"code_postal,omitempty"`
	Ville      String `json:"ville,omitempty"`
}

func (Destinataire) AsItem

func (p Destinataire) AsItem() Item

type DestinatairesOptionnels

type DestinatairesOptionnels []Destinataire

func (DestinatairesOptionnels) Index

func (dest DestinatairesOptionnels) Index(i int) (Destinataire, error)

func (*DestinatairesOptionnels) Scan

func (s *DestinatairesOptionnels) Scan(src interface{}) error

func (DestinatairesOptionnels) Value

type Diplome

type Diplome string

Diplome est l'identifiant du type de diplome

const (
	DAucun      Diplome = ""            // Aucun
	DBafa       Diplome = "bafa"        // BAFA Titulaire
	DBafaStag   Diplome = "bafa_stag"   // BAFA Stagiaire
	DBafd       Diplome = "bafd"        // BAFD titulaire
	DBafdStag   Diplome = "bafd_stag"   // BAFD stagiaire
	DCap        Diplome = "cap"         // CAP petit enfance
	DAssSociale Diplome = "ass_sociale" // Assitante Sociale
	DEducSpe    Diplome = "educ_spe"    // Educ. spé.
	DMonEduc    Diplome = "mon_educ"    // Moniteur educateur
	DInstit     Diplome = "instit"      // Professeur des écoles
	DProf       Diplome = "prof"        // Enseignant du secondaire
	DAgreg      Diplome = "agreg"       // Agrégé
	DBjeps      Diplome = "bjeps"       // BPJEPS
	DDut        Diplome = "dut"         // DUT carrière sociale
	DEje        Diplome = "eje"         // EJE
	DDeug       Diplome = "deug"        // DEUG
	DStaps      Diplome = "staps"       // STAPS
	DBapaat     Diplome = "bapaat"      // BAPAAT
	DBeatep     Diplome = "beatep"      // BEATEP
	DZzautre    Diplome = "zzautre"     // AUTRE
)

func (Diplome) String

func (d Diplome) String() String

type Distribution

type Distribution uint8
const (
	DEspacePerso     Distribution = iota // Téléchargée depuis l'espace de suivi
	DMail                                // Notifiée par courriel
	DMailAndDownload                     // Téléchargée après notification
)

type Document

type Document struct {
	Id int64 `json:"id"`

	// En bytes
	Taille         Taille `json:"taille"`
	NomClient      String `json:"nom_client"`
	Description    String `json:"description"`
	DateHeureModif Time   `json:"date_heure_modif"`
}

Document représente les méta données d'un document stocké sur le serveur Son contenu et son utilisation sont définis par les objets `TargetDocument` et `ContenuDocument`

func DeleteDocumentById

func DeleteDocumentById(tx DB, id int64) (Document, error)

Deletes the Document and returns the item

func ScanDocument

func ScanDocument(row *sql.Row) (Document, error)

func SelectDocument

func SelectDocument(tx DB, id int64) (Document, error)

SelectDocument returns the entry matching id.

func (Document) Insert

func (item Document) Insert(tx DB) (out Document, err error)

Insert Document in the database and returns the item with id filled.

func (Document) Update

func (item Document) Update(tx DB) (out Document, err error)

Update Document in the database and returns the new version.

type DocumentAide

type DocumentAide struct {
	IdDocument int64 `json:"id_document" sql_on_delete:"CASCADE"`
	IdAide     int64 `json:"id_aide"`
}

table de lien pour les justificatifs des aides sql:ADD UNIQUE(id_document)

func ScanDocumentAide

func ScanDocumentAide(row *sql.Row) (DocumentAide, error)

func SelectDocumentAideByIdDocument

func SelectDocumentAideByIdDocument(tx DB, idDocument int64) (item DocumentAide, found bool, err error)

SelectDocumentAideByIdDocument return zero or one item, thanks to a UNIQUE constraint

func (DocumentAide) Delete

func (item DocumentAide) Delete(tx DB) error

Delete the link DocumentAide in the database. Only the 'IdDocument' 'IdAide' fields are used.

func (da DocumentAide) UpdateLinks(links *Links)

type DocumentAides

type DocumentAides []DocumentAide

func DeleteDocumentAidesByIdAides

func DeleteDocumentAidesByIdAides(tx DB, idAides ...int64) (DocumentAides, error)

func DeleteDocumentAidesByIdDocuments

func DeleteDocumentAidesByIdDocuments(tx DB, idDocuments ...int64) (DocumentAides, error)

func ScanDocumentAides

func ScanDocumentAides(rs *sql.Rows) (DocumentAides, error)

func SelectAllDocumentAides

func SelectAllDocumentAides(tx DB) (DocumentAides, error)

func SelectDocumentAidesByIdAides

func SelectDocumentAidesByIdAides(tx DB, idAides ...int64) (DocumentAides, error)

func SelectDocumentAidesByIdDocuments

func SelectDocumentAidesByIdDocuments(tx DB, idDocuments ...int64) (DocumentAides, error)

func (DocumentAides) ByIdAide

func (items DocumentAides) ByIdAide() map[int64]DocumentAides

ByIdAide returns a map with 'IdAide' as keys.

func (DocumentAides) ByIdDocument

func (items DocumentAides) ByIdDocument() map[int64]DocumentAide

ByIdDocument returns a map with 'IdDocument' as keys.

type DocumentCamp

type DocumentCamp struct {
	IdDocument int64 `json:"id_document" sql_on_delete:"CASCADE"`
	IdCamp     int64 `json:"id_camp"`
	IsLettre   bool  `json:"is_lettre"` // sinon, document additionnel
}

table de lien pour les lettres des séjours et les documents additionnels sql: ADD UNIQUE(id_document)

func ScanDocumentCamp

func ScanDocumentCamp(row *sql.Row) (DocumentCamp, error)

func SelectDocumentCampByIdDocument

func SelectDocumentCampByIdDocument(tx DB, idDocument int64) (item DocumentCamp, found bool, err error)

SelectDocumentCampByIdDocument return zero or one item, thanks to a UNIQUE constraint

func (DocumentCamp) Delete

func (item DocumentCamp) Delete(tx DB) error

Delete the link DocumentCamp in the database. Only the 'IdDocument' 'IdCamp' fields are used.

type DocumentCamps

type DocumentCamps []DocumentCamp

func DeleteDocumentCampsByIdCamps

func DeleteDocumentCampsByIdCamps(tx DB, idCamps ...int64) (DocumentCamps, error)

func DeleteDocumentCampsByIdDocuments

func DeleteDocumentCampsByIdDocuments(tx DB, idDocuments ...int64) (DocumentCamps, error)

func ScanDocumentCamps

func ScanDocumentCamps(rs *sql.Rows) (DocumentCamps, error)

func SelectAllDocumentCamps

func SelectAllDocumentCamps(tx DB) (DocumentCamps, error)

func SelectDocumentCampsByIdCamps

func SelectDocumentCampsByIdCamps(tx DB, idCamps ...int64) (DocumentCamps, error)

func SelectDocumentCampsByIdDocuments

func SelectDocumentCampsByIdDocuments(tx DB, idDocuments ...int64) (DocumentCamps, error)

func (DocumentCamps) ByIdCamp

func (items DocumentCamps) ByIdCamp() map[int64]DocumentCamps

ByIdCamp returns a map with 'IdCamp' as keys.

func (DocumentCamps) ByIdDocument

func (items DocumentCamps) ByIdDocument() map[int64]DocumentCamp

ByIdDocument returns a map with 'IdDocument' as keys.

func (DocumentCamps) FindLettre

func (docs DocumentCamps) FindLettre() (DocumentCamp, bool)

FindLettre renvoie le premier lien vers une lettre, s'il existe

type DocumentPersonne

type DocumentPersonne struct {
	IdDocument   int64 `json:"id_document" sql_on_delete:"CASCADE"`
	IdPersonne   int64 `json:"id_personne"`
	IdContrainte int64 `json:"id_contrainte"`
}

table de lien pour les documents liés aux personnes un document peut remplir une contrainte personnalisée sql:ADD UNIQUE(id_document)

func ScanDocumentPersonne

func ScanDocumentPersonne(row *sql.Row) (DocumentPersonne, error)

func SelectDocumentPersonneByIdDocument

func SelectDocumentPersonneByIdDocument(tx DB, idDocument int64) (item DocumentPersonne, found bool, err error)

SelectDocumentPersonneByIdDocument return zero or one item, thanks to a UNIQUE constraint

func (DocumentPersonne) Delete

func (item DocumentPersonne) Delete(tx DB) error

Delete the link DocumentPersonne in the database. Only the 'IdDocument' 'IdPersonne' 'IdContrainte' fields are used.

func (dp DocumentPersonne) UpdateLinks(links *Links)

type DocumentPersonnes

type DocumentPersonnes []DocumentPersonne

func DeleteDocumentPersonnesByIdContraintes

func DeleteDocumentPersonnesByIdContraintes(tx DB, idContraintes ...int64) (DocumentPersonnes, error)

func DeleteDocumentPersonnesByIdDocuments

func DeleteDocumentPersonnesByIdDocuments(tx DB, idDocuments ...int64) (DocumentPersonnes, error)

func DeleteDocumentPersonnesByIdPersonnes

func DeleteDocumentPersonnesByIdPersonnes(tx DB, idPersonnes ...int64) (DocumentPersonnes, error)

func ScanDocumentPersonnes

func ScanDocumentPersonnes(rs *sql.Rows) (DocumentPersonnes, error)

func SelectAllDocumentPersonnes

func SelectAllDocumentPersonnes(tx DB) (DocumentPersonnes, error)

func SelectDocumentPersonnesByIdContraintes

func SelectDocumentPersonnesByIdContraintes(tx DB, idContraintes ...int64) (DocumentPersonnes, error)

func SelectDocumentPersonnesByIdDocuments

func SelectDocumentPersonnesByIdDocuments(tx DB, idDocuments ...int64) (DocumentPersonnes, error)

func SelectDocumentPersonnesByIdPersonnes

func SelectDocumentPersonnesByIdPersonnes(tx DB, idPersonnes ...int64) (DocumentPersonnes, error)

func (DocumentPersonnes) ByIdContrainte

func (items DocumentPersonnes) ByIdContrainte() map[int64]DocumentPersonnes

ByIdContrainte returns a map with 'IdContrainte' as keys.

func (DocumentPersonnes) ByIdDocument

func (items DocumentPersonnes) ByIdDocument() map[int64]DocumentPersonne

ByIdDocument returns a map with 'IdDocument' as keys.

func (DocumentPersonnes) ByIdPersonne

func (items DocumentPersonnes) ByIdPersonne() map[int64]DocumentPersonnes

ByIdPersonne returns a map with 'IdPersonne' as keys.

type Documents

type Documents map[int64]Document

func ScanDocuments

func ScanDocuments(rs *sql.Rows) (Documents, error)

func SelectAllDocuments

func SelectAllDocuments(tx DB) (Documents, error)

func SelectDocuments

func SelectDocuments(tx DB, ids ...int64) (Documents, error)

SelectDocuments returns the entry matching the given ids.

func (Documents) Ids

func (m Documents) Ids() Ids

func (Documents) ParProprietaire

func (d Documents) ParProprietaire(targets DocumentPersonnes) map[int64][]Document

ParProprietaire attribue chaque document à son propriétaire. Seuls les documents associés à des personnes sont considérés.

type Don

type Don struct {
	Id            int64       `json:"id"`
	Valeur        Euros       `json:"valeur"`
	ModePaiement  ModePaiment `json:"mode_paiement"`
	DateReception Date        `json:"date_reception"`
	RecuEmis      Date        `json:"recu_emis"`
	Infos         InfoDon     `json:"infos"`
	Remercie      Bool        `json:"remercie"`    // `true` si le remerciement a été envoyé
	Details       String      `json:"details"`     // détails additionels
	Affectation   String      `json:"affectation"` // indicatif
}

func DeleteDonById

func DeleteDonById(tx DB, id int64) (Don, error)

Deletes the Don and returns the item

func ScanDon

func ScanDon(row *sql.Row) (Don, error)

func SelectDon

func SelectDon(tx DB, id int64) (Don, error)

SelectDon returns the entry matching id.

func (Don) Insert

func (item Don) Insert(tx DB) (out Don, err error)

Insert Don in the database and returns the item with id filled.

func (Don) Label

func (r Don) Label() string

func (Don) Update

func (item Don) Update(tx DB) (out Don, err error)

Update Don in the database and returns the new version.

type DonDonateur

type DonDonateur struct {
	IdDon       int64       `json:"id_don" sql_on_delete:"CASCADE"`
	IdPersonne  OptionnalId `json:"id_personne"`
	IdOrganisme OptionnalId `json:"id_organisme"`
}

DonDonateur est une table de lien indiquant l'origine d'un don, groupe ou personne sql:ADD CHECK(id_personne <> null OR id_organisme <> null) sql:ADD CHECK(id_personne = null OR id_organisme = null) sql:ADD UNIQUE(id_don)

func ScanDonDonateur

func ScanDonDonateur(row *sql.Row) (DonDonateur, error)

func SelectDonDonateurByIdDon

func SelectDonDonateurByIdDon(tx DB, idDon int64) (item DonDonateur, found bool, err error)

SelectDonDonateurByIdDon return zero or one item, thanks to a UNIQUE constraint

func (DonDonateur) Delete

func (item DonDonateur) Delete(tx DB) error

Delete the link DonDonateur in the database. Only the 'IdDon' 'IdPersonne' 'IdOrganisme' fields are used.

func (DonDonateur) IId

func (d DonDonateur) IId() IId

IId renvois un IdPersonne ou un IdOrganisme ou nil

type DonDonateurs

type DonDonateurs []DonDonateur

func DeleteDonDonateursByIdDons

func DeleteDonDonateursByIdDons(tx DB, idDons ...int64) (DonDonateurs, error)

func DeleteDonDonateursByIdOrganismes

func DeleteDonDonateursByIdOrganismes(tx DB, idOrganismes ...int64) (DonDonateurs, error)

func DeleteDonDonateursByIdPersonnes

func DeleteDonDonateursByIdPersonnes(tx DB, idPersonnes ...int64) (DonDonateurs, error)

func ScanDonDonateurs

func ScanDonDonateurs(rs *sql.Rows) (DonDonateurs, error)

func SelectAllDonDonateurs

func SelectAllDonDonateurs(tx DB) (DonDonateurs, error)

func SelectDonDonateursByIdDons

func SelectDonDonateursByIdDons(tx DB, idDons ...int64) (DonDonateurs, error)

func SelectDonDonateursByIdOrganismes

func SelectDonDonateursByIdOrganismes(tx DB, idOrganismes ...int64) (DonDonateurs, error)

func SelectDonDonateursByIdPersonnes

func SelectDonDonateursByIdPersonnes(tx DB, idPersonnes ...int64) (DonDonateurs, error)

func (DonDonateurs) ByIdDon

func (items DonDonateurs) ByIdDon() map[int64]DonDonateur

ByIdDon returns a map with 'IdDon' as keys.

type Dons

type Dons map[int64]Don

func ScanDons

func ScanDons(rs *sql.Rows) (Dons, error)

func SelectAllDons

func SelectAllDons(tx DB) (Dons, error)

func SelectDons

func SelectDons(tx DB, ids ...int64) (Dons, error)

SelectDons returns the entry matching the given ids.

func (Dons) Ids

func (m Dons) Ids() Ids

type Envois

type Envois struct {
	Locked            bool `json:"__locked__,omitempty"`
	LettreDirecteur   bool `json:"lettre_directeur,omitempty"`
	ListeVetements    bool `json:"liste_vetements,omitempty"`
	ListeParticipants bool `json:"liste_participants,omitempty"`
}

func (Envois) Description

func (e Envois) Description() string

Description renvoi du html

func (*Envois) Scan

func (s *Envois) Scan(src interface{}) error

func (Envois) String

func (e Envois) String() string

func (Envois) Value

func (s Envois) Value() (driver.Value, error)

type Equipier

type Equipier struct {
	Id         int64 `json:"id"`
	IdCamp     int64 `json:"id_camp"`
	IdPersonne int64 `json:"id_personne" sql_on_delete:"CASCADE"`

	Roles              Roles              `json:"roles"`
	Diplome            Diplome            `json:"diplome"`
	Appro              Approfondissement  `json:"appro"`
	Presence           OptionnalPlage     `json:"presence"`
	InvitationEquipier InvitationEquipier `json:"invitation_equipier"`

	// validation de la charte ACVE
	Charte OptionnalBool `json:"charte"`
}

Equipier représente un participant dans l'équipe d'un séjour sql:ADD UNIQUE(id_personne, id_camp) requise par la contrainte ParticipantEquipier sql:ADD UNIQUE(id, id_camp)

func DeleteEquipierById

func DeleteEquipierById(tx DB, id int64) (Equipier, error)

Deletes the Equipier and returns the item

func ScanEquipier

func ScanEquipier(row *sql.Row) (Equipier, error)

func SelectEquipier

func SelectEquipier(tx DB, id int64) (Equipier, error)

SelectEquipier returns the entry matching id.

func (Equipier) Insert

func (item Equipier) Insert(tx DB) (out Equipier, err error)

Insert Equipier in the database and returns the item with id filled.

func (Equipier) Update

func (item Equipier) Update(tx DB) (out Equipier, err error)

Update Equipier in the database and returns the new version.

type EquipierContrainte

type EquipierContrainte struct {
	IdEquipier   int64 `json:"id_equipier" sql_on_delete:"CASCADE"`
	IdContrainte int64 `json:"id_contrainte"`
	Optionnel    bool  `json:"optionnel"`
}

sql:ADD UNIQUE(id_equipier, id_contrainte)

func ScanEquipierContrainte

func ScanEquipierContrainte(row *sql.Row) (EquipierContrainte, error)

func (EquipierContrainte) Delete

func (item EquipierContrainte) Delete(tx DB) error

Delete the link EquipierContrainte in the database. Only the 'IdEquipier' 'IdContrainte' fields are used.

type EquipierContraintes

type EquipierContraintes []EquipierContrainte

func DeleteEquipierContraintesByIdContraintes

func DeleteEquipierContraintesByIdContraintes(tx DB, idContraintes ...int64) (EquipierContraintes, error)

func DeleteEquipierContraintesByIdEquipiers

func DeleteEquipierContraintesByIdEquipiers(tx DB, idEquipiers ...int64) (EquipierContraintes, error)

func ScanEquipierContraintes

func ScanEquipierContraintes(rs *sql.Rows) (EquipierContraintes, error)

func SelectAllEquipierContraintes

func SelectAllEquipierContraintes(tx DB) (EquipierContraintes, error)

func SelectEquipierContraintesByIdContraintes

func SelectEquipierContraintesByIdContraintes(tx DB, idContraintes ...int64) (EquipierContraintes, error)

func SelectEquipierContraintesByIdEquipiers

func SelectEquipierContraintesByIdEquipiers(tx DB, idEquipiers ...int64) (EquipierContraintes, error)

func (EquipierContraintes) AsIds

func (eqcts EquipierContraintes) AsIds() Ids

AsIds renvoie les ids des contraintes

func (EquipierContraintes) ByIdContrainte

func (items EquipierContraintes) ByIdContrainte() map[int64]EquipierContraintes

ByIdContrainte returns a map with 'IdContrainte' as keys.

func (EquipierContraintes) ByIdEquipier

func (items EquipierContraintes) ByIdEquipier() map[int64]EquipierContraintes

ByIdEquipier returns a map with 'IdEquipier' as keys.

type Equipiers

type Equipiers map[int64]Equipier

func ScanEquipiers

func ScanEquipiers(rs *sql.Rows) (Equipiers, error)

func SelectAllEquipiers

func SelectAllEquipiers(tx DB) (Equipiers, error)

func SelectEquipiers

func SelectEquipiers(tx DB, ids ...int64) (Equipiers, error)

SelectEquipiers returns the entry matching the given ids.

func SelectEquipiersByIdCamps

func SelectEquipiersByIdCamps(tx DB, idCamps ...int64) (Equipiers, error)

func SelectEquipiersByIdPersonnes

func SelectEquipiersByIdPersonnes(tx DB, idPersonnes ...int64) (Equipiers, error)

func (Equipiers) FindDirecteur

func (eqs Equipiers) FindDirecteur() (Equipier, bool)

func (Equipiers) Ids

func (m Equipiers) Ids() Ids

type EtatNegociation

type EtatNegociation struct {
	AccuseReception     Time                `json:"accuse_reception,omitempty"`
	Facture             Time                `json:"facture,omitempty"`
	Documents           map[int64]time.Time `json:"documents,omitempty"`
	FactureAcquittee    Time                `json:"facture_acquittee,omitempty"`
	AttestationPresence Time                `json:"attestation_presence,omitempty"`
}

EtatNegociaton indique les avanvements du dossier (dates d'envois des mails) Les documents sont envoyés camp par camp, d'où un map camp -> moment d'envoi

func (EtatNegociation) Description

func (e EtatNegociation) Description(camps Camps) []InfoEnvoi

Description renvoie la liste des mails envoyés, triée par date.

func (*EtatNegociation) Scan

func (s *EtatNegociation) Scan(src interface{}) error

func (EtatNegociation) Value

func (s EtatNegociation) Value() (driver.Value, error)

type Euros

type Euros float64

Euros représente un prix en euros

func (Euros) IsEqual

func (e Euros) IsEqual(other Euros) bool

IsEqual renvoie `true` si le prix est égal à `other` au sens de 2 décimales

func (Euros) IsLess

func (e Euros) IsLess(other Euros) bool

IsLess renvoie `true` si le prix est inférieur ou égal à `other` au sens de 2 décimales

func (Euros) Remise

func (e Euros) Remise(rem Pourcent) Euros

Remise applique une remise en pourcentage (renvoie au minimum 0)

func (Euros) Round

func (e Euros) Round() float64

Round arrondi à deux chiffres après la virgule

func (Euros) Sortable

func (p Euros) Sortable() string

func (Euros) String

func (p Euros) String() string

type Exemplaires

type Exemplaires struct {
	PubEte     int `json:"pub_ete"`
	PubHiver   int `json:"pub_hiver"`
	EchoRocher int `json:"echo_rocher"`
}

func (*Exemplaires) Scan

func (s *Exemplaires) Scan(src interface{}) error

func (Exemplaires) Value

func (s Exemplaires) Value() (driver.Value, error)

type F

type F map[Field]Data

Fields protège l'accès aux champs vides

func (F) Data

func (fs F) Data(field Field) Data

Data renvoie la donnée, qui est assurée de ne pas être `nil`

type Facture

type Facture struct {
	Id                      int64                   `json:"id"`
	IdPersonne              int64                   `json:"id_personne"`
	DestinatairesOptionnels DestinatairesOptionnels `json:"destinataires_optionnels"`
	Key                     String                  `json:"key"`
	CopiesMails             pq.StringArray          `json:"copies_mails"` // liste d'adresse en copies des mails envoyés

	LastConnection time.Time `json:"last_connection"` // connection sur l'espace de suivi

	IsConfirmed bool `json:"is_confirmed"` // mail confirmé par les parents
	IsValidated bool `json:"is_validated"` // validée par le centre

	// Autorisation de partage des adresses
	PartageAdressesOK bool `json:"partage_adresses_ok"`
}

func DeleteFactureById

func DeleteFactureById(tx DB, id int64) (Facture, error)

Deletes the Facture and returns the item

func ScanFacture

func ScanFacture(row *sql.Row) (Facture, error)

func SelectFacture

func SelectFacture(tx DB, id int64) (Facture, error)

SelectFacture returns the entry matching id.

func (Facture) Insert

func (item Facture) Insert(tx DB) (out Facture, err error)

Insert Facture in the database and returns the item with id filled.

func (Facture) Update

func (item Facture) Update(tx DB) (out Facture, err error)

Update Facture in the database and returns the new version.

func (Facture) UrlEspacePerso

func (f Facture) UrlEspacePerso(host string) string

type Factures

type Factures map[int64]Facture

func ScanFactures

func ScanFactures(rs *sql.Rows) (Factures, error)

func SelectAllFactures

func SelectAllFactures(tx DB) (Factures, error)

func SelectFactures

func SelectFactures(tx DB, ids ...int64) (Factures, error)

SelectFactures returns the entry matching the given ids.

func SelectFacturesByIdPersonnes

func SelectFacturesByIdPersonnes(tx DB, idPersonnes ...int64) (Factures, error)

func (Factures) Ids

func (m Factures) Ids() Ids

type FicheSanitaire

type FicheSanitaire struct {
	TraitementMedical bool      `json:"traitement_medical,omitempty"`
	Maladies          Maladies  `json:"maladies,omitempty"`
	Allergies         Allergies `json:"allergies,omitempty"`
	DifficultesSante  string    `json:"difficultes_sante,omitempty"`
	Recommandations   string    `json:"recommandations,omitempty"`
	Handicap          bool      `json:"handicap,omitempty"`
	Tel               string    `json:"tel,omitempty"` // en plus des numéros d'un éventuel contact
	Medecin           Medecin   `json:"medecin,omitempty"`

	LastModif Time     `json:"last_modif,omitempty"` // dernière modification
	Mails     []string `json:"mails,omitempty"`      // mail des propiétaires, pour sécurité.
}

FicheSanitaire stocke les informations remplies sur l'espace perso. A coordonner avec le contact du participant (nom, Prenom, Adresse, CodePostal, Ville, Tels, Sécurité Sociale)

func (FicheSanitaire) IsNone

func (f FicheSanitaire) IsNone() bool

IsNone renvoie `true` si la fiche n'a jamais été modifiée.

func (*FicheSanitaire) Scan

func (s *FicheSanitaire) Scan(src interface{}) error

func (FicheSanitaire) Value

func (s FicheSanitaire) Value() (driver.Value, error)

type Field

type Field uint8
const (
	IDateHeure Field = iota
	IResponsable
	INbParticipants
)
const (
	VQuantite Field = iota
	VDescription
	VArrivee
	VDepart
)
const (
	PPSPrix Field = iota
	PPSStatut
	PPSDescription
)
const (
	DNomPrenom Field = iota
)

type Float

type Float float64

Float is 64bit float

func (*Float) Scan

func (s *Float) Scan(src interface{}) error

func (Float) Sortable

func (f Float) Sortable() string

type Groupe

type Groupe struct {
	Id     int64 `json:"id"`
	IdCamp int64 `json:"id_camp" sql_on_delete:"CASCADE"`

	// un nom vide indique un groupe par défaut
	Nom String `json:"nom"`
	// indication: ignorée forcément pour un groupe par défaut
	Plage Plage `json:"plage"`
	// Hex color, optionnelle
	Couleur string `json:"couleur"`
	// contains filtered or unexported fields
}

Groupe représente un groupe de participants Un séjour peut définir (ou non) une liste de groupes sql:ADD UNIQUE(id_camp, nom) sql:ADD UNIQUE(id, id_camp) assure qu'un groupe est lié à un camp complet sql:ALTER COLUMN isSimple SET DEFAULT false sql:ADD CHECK(isSimple = false) sql:ADD FOREIGN KEY (id_camp, isSimple) REFERENCES camps(id,inscription_simple)

func DeleteGroupeById

func DeleteGroupeById(tx DB, id int64) (Groupe, error)

Deletes the Groupe and returns the item

func ScanGroupe

func ScanGroupe(row *sql.Row) (Groupe, error)

func SelectGroupe

func SelectGroupe(tx DB, id int64) (Groupe, error)

SelectGroupe returns the entry matching id.

func (Groupe) Insert

func (item Groupe) Insert(tx DB) (out Groupe, err error)

Insert Groupe in the database and returns the item with id filled.

func (Groupe) Update

func (item Groupe) Update(tx DB) (out Groupe, err error)

Update Groupe in the database and returns the new version.

type GroupeContrainte

type GroupeContrainte struct {
	IdGroupe     int64 `json:"id_groupe" sql_on_delete:"CASCADE"`
	IdContrainte int64 `json:"id_contrainte"`
}

GroupeContrainte représente une contrainte attribuée à un groupe spécifique (de façon cumulative avec les contraintes camps) sql:ADD UNIQUE(id_groupe, id_contrainte)

func ScanGroupeContrainte

func ScanGroupeContrainte(row *sql.Row) (GroupeContrainte, error)

func (GroupeContrainte) Delete

func (item GroupeContrainte) Delete(tx DB) error

Delete the link GroupeContrainte in the database. Only the 'IdGroupe' 'IdContrainte' fields are used.

type GroupeContraintes

type GroupeContraintes []GroupeContrainte

func DeleteGroupeContraintesByIdContraintes

func DeleteGroupeContraintesByIdContraintes(tx DB, idContraintes ...int64) (GroupeContraintes, error)

func DeleteGroupeContraintesByIdGroupes

func DeleteGroupeContraintesByIdGroupes(tx DB, idGroupes ...int64) (GroupeContraintes, error)

func ScanGroupeContraintes

func ScanGroupeContraintes(rs *sql.Rows) (GroupeContraintes, error)

func SelectAllGroupeContraintes

func SelectAllGroupeContraintes(tx DB) (GroupeContraintes, error)

func SelectGroupeContraintesByIdContraintes

func SelectGroupeContraintesByIdContraintes(tx DB, idContraintes ...int64) (GroupeContraintes, error)

func SelectGroupeContraintesByIdGroupes

func SelectGroupeContraintesByIdGroupes(tx DB, idGroupes ...int64) (GroupeContraintes, error)

func (GroupeContraintes) ByIdContrainte

func (items GroupeContraintes) ByIdContrainte() map[int64]GroupeContraintes

ByIdContrainte returns a map with 'IdContrainte' as keys.

func (GroupeContraintes) ByIdGroupe

func (items GroupeContraintes) ByIdGroupe() map[int64]GroupeContraintes

ByIdGroupe returns a map with 'IdGroupe' as keys.

type GroupeEquipier

type GroupeEquipier struct {
	IdGroupe   int64 `json:"id_groupe" sql_on_delete:"CASCADE"`
	IdEquipier int64 `json:"id_equipier" sql_on_delete:"CASCADE"`
	// redondance pour assurer l'intégrité
	IdCamp int64 `json:"id_camp" sql_on_delete:"CASCADE"`
}

GroupeEquipiers définit les animateurs d'un groupe sql:ADD UNIQUE(id_groupe, id_equipier) sql:ADD FOREIGN KEY (id_equipier, id_camp) REFERENCES equipiers(id,id_camp) sql:ADD FOREIGN KEY (id_groupe, id_camp) REFERENCES groupes(id,id_camp)

func ScanGroupeEquipier

func ScanGroupeEquipier(row *sql.Row) (GroupeEquipier, error)

func (GroupeEquipier) Delete

func (item GroupeEquipier) Delete(tx DB) error

Delete the link GroupeEquipier in the database. Only the 'IdGroupe' 'IdEquipier' 'IdCamp' fields are used.

type GroupeEquipiers

type GroupeEquipiers []GroupeEquipier

func DeleteGroupeEquipiersByIdCamps

func DeleteGroupeEquipiersByIdCamps(tx DB, idCamps ...int64) (GroupeEquipiers, error)

func DeleteGroupeEquipiersByIdEquipiers

func DeleteGroupeEquipiersByIdEquipiers(tx DB, idEquipiers ...int64) (GroupeEquipiers, error)

func DeleteGroupeEquipiersByIdGroupes

func DeleteGroupeEquipiersByIdGroupes(tx DB, idGroupes ...int64) (GroupeEquipiers, error)

func ScanGroupeEquipiers

func ScanGroupeEquipiers(rs *sql.Rows) (GroupeEquipiers, error)

func SelectAllGroupeEquipiers

func SelectAllGroupeEquipiers(tx DB) (GroupeEquipiers, error)

func SelectGroupeEquipiersByIdCamps

func SelectGroupeEquipiersByIdCamps(tx DB, idCamps ...int64) (GroupeEquipiers, error)

func SelectGroupeEquipiersByIdEquipiers

func SelectGroupeEquipiersByIdEquipiers(tx DB, idEquipiers ...int64) (GroupeEquipiers, error)

func SelectGroupeEquipiersByIdGroupes

func SelectGroupeEquipiersByIdGroupes(tx DB, idGroupes ...int64) (GroupeEquipiers, error)

func (GroupeEquipiers) ByIdCamp

func (items GroupeEquipiers) ByIdCamp() map[int64]GroupeEquipiers

ByIdCamp returns a map with 'IdCamp' as keys.

func (GroupeEquipiers) ByIdEquipier

func (items GroupeEquipiers) ByIdEquipier() map[int64]GroupeEquipiers

ByIdEquipier returns a map with 'IdEquipier' as keys.

func (GroupeEquipiers) ByIdGroupe

func (items GroupeEquipiers) ByIdGroupe() map[int64]GroupeEquipiers

ByIdGroupe returns a map with 'IdGroupe' as keys.

type GroupeParticipant

type GroupeParticipant struct {
	IdParticipant int64 `json:"id_participant" sql_on_delete:"CASCADE"`
	IdGroupe      int64 `json:"id_groupe" sql_on_delete:"CASCADE"`
	// redondance pour assurer l'intégrité
	IdCamp int64 `json:"id_camp"`
	// indique si l'attribuation a été faite
	// en modifiant directement la fiche du participant ou
	// en fonction de l'âge
	Manuel bool `json:"manuel"`
}

GroupeParticipant défini le contenu des groupes sql:ADD UNIQUE (id_participant) sql:ADD UNIQUE (id_participant, id_groupe) sql:ADD FOREIGN KEY (id_participant, id_camp) REFERENCES participants(id,id_camp) sql:ADD FOREIGN KEY (id_groupe, id_camp) REFERENCES groupes(id,id_camp)

func ScanGroupeParticipant

func ScanGroupeParticipant(row *sql.Row) (GroupeParticipant, error)

func SelectGroupeParticipantByIdParticipant

func SelectGroupeParticipantByIdParticipant(tx DB, idParticipant int64) (item GroupeParticipant, found bool, err error)

SelectGroupeParticipantByIdParticipant return zero or one item, thanks to a UNIQUE constraint

func (GroupeParticipant) Delete

func (item GroupeParticipant) Delete(tx DB) error

Delete the link GroupeParticipant in the database. Only the 'IdParticipant' 'IdGroupe' 'IdCamp' fields are used.

type GroupeParticipants

type GroupeParticipants []GroupeParticipant

func DeleteGroupeParticipantsByIdCamps

func DeleteGroupeParticipantsByIdCamps(tx DB, idCamps ...int64) (GroupeParticipants, error)

func DeleteGroupeParticipantsByIdGroupes

func DeleteGroupeParticipantsByIdGroupes(tx DB, idGroupes ...int64) (GroupeParticipants, error)

func DeleteGroupeParticipantsByIdParticipants

func DeleteGroupeParticipantsByIdParticipants(tx DB, idParticipants ...int64) (GroupeParticipants, error)

func ScanGroupeParticipants

func ScanGroupeParticipants(rs *sql.Rows) (GroupeParticipants, error)

func SelectAllGroupeParticipants

func SelectAllGroupeParticipants(tx DB) (GroupeParticipants, error)

func SelectGroupeParticipantsByIdCamps

func SelectGroupeParticipantsByIdCamps(tx DB, idCamps ...int64) (GroupeParticipants, error)

func SelectGroupeParticipantsByIdGroupes

func SelectGroupeParticipantsByIdGroupes(tx DB, idGroupes ...int64) (GroupeParticipants, error)

func SelectGroupeParticipantsByIdParticipants

func SelectGroupeParticipantsByIdParticipants(tx DB, idParticipants ...int64) (GroupeParticipants, error)

func (GroupeParticipants) ByIdCamp

func (items GroupeParticipants) ByIdCamp() map[int64]GroupeParticipants

ByIdCamp returns a map with 'IdCamp' as keys.

func (GroupeParticipants) ByIdGroupe

func (items GroupeParticipants) ByIdGroupe() map[int64]GroupeParticipants

ByIdGroupe returns a map with 'IdGroupe' as keys.

func (GroupeParticipants) ByIdParticipant

func (items GroupeParticipants) ByIdParticipant() map[int64]GroupeParticipant

ByIdParticipant returns a map with 'IdParticipant' as keys.

type Groupes

type Groupes map[int64]Groupe

func ScanGroupes

func ScanGroupes(rs *sql.Rows) (Groupes, error)

func SelectAllGroupes

func SelectAllGroupes(tx DB) (Groupes, error)

func SelectGroupes

func SelectGroupes(tx DB, ids ...int64) (Groupes, error)

SelectGroupes returns the entry matching the given ids.

func SelectGroupesByIdCamps

func SelectGroupesByIdCamps(tx DB, idCamps ...int64) (Groupes, error)

func (Groupes) Ids

func (m Groupes) Ids() Ids
type Header struct {
	Field Field
	Label string
}

type HexColor

type HexColor string

func (HexColor) AHex

func (c HexColor) AHex() string

func (HexColor) Hex

func (c HexColor) Hex() string

type HintsAttente

type HintsAttente struct {
	AgeMin, AgeMax, EquilibreGF, Place StatutAttente
}

HintsAttente expose une série de critère qui guide le choix de mise en liste d'attente

func (HintsAttente) Causes

func (h HintsAttente) Causes() []string

func (HintsAttente) Hint

func (h HintsAttente) Hint() StatutAttente

Hint renvoie le choix "logique" correspondant aux critères. Par design, ce n'est pas forcément le statut actuel du participant

func (HintsAttente) Sortable

func (h HintsAttente) Sortable() string

func (HintsAttente) String

func (h HintsAttente) String() string

String résume les indications. Renvoie une chaine vide si tous les critères sont remplis

type IId

type IId interface {
	Int64() int64
}

IId permet de différencier des éléments de plusieurs table

type Id

type Id int64

Id implémente IId, et suffit dans la plupart des cas.

func (Id) Int64

func (i Id) Int64() int64

type IdFacture

type IdFacture int64

IdFacture représente un élement de la table Facture

func (IdFacture) Int64

func (i IdFacture) Int64() int64

type IdOrganisme

type IdOrganisme int64

IdOrganisme représente un élement de la table Organisme

func (IdOrganisme) Int64

func (i IdOrganisme) Int64() int64

type IdParticipant

type IdParticipant int64

IdParticipant représente un élement de la table Participant

func (IdParticipant) Int64

func (i IdParticipant) Int64() int64

type IdParticipantsimple

type IdParticipantsimple int64

IdParticipantsimple représente un élement de la table Participantsimple

func (IdParticipantsimple) Int64

func (i IdParticipantsimple) Int64() int64

type IdPersonne

type IdPersonne int64

IdPersonne représente un élement de la table Personne

func (IdPersonne) Int64

func (i IdPersonne) Int64() int64

type IdentificationId

type IdentificationId struct {
	// `true` pour une identification
	Valid bool  `json:"valid,omitempty"`
	Id    int64 `json:"id,omitempty"`

	// Usefull to send to the browser. Useless internally or in the client
	Crypted string `json:"crypted,omitempty"`
}

func (*IdentificationId) Scan

func (s *IdentificationId) Scan(src interface{}) error

func (IdentificationId) Value

func (s IdentificationId) Value() (driver.Value, error)

type Ids

type Ids []int64

func DeleteAidesByIdParticipants

func DeleteAidesByIdParticipants(tx DB, idParticipants ...int64) (Ids, error)

func DeleteAidesByIdStructureaides

func DeleteAidesByIdStructureaides(tx DB, idStructureaides ...int64) (Ids, error)

func DeleteAidesByIds

func DeleteAidesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Aide in the database and returns the ids.

func DeleteCampsByIds

func DeleteCampsByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Camp in the database and returns the ids.

func DeleteContraintesByIdDocuments

func DeleteContraintesByIdDocuments(tx DB, idDocuments ...int64) (Ids, error)

func DeleteContraintesByIdPersonnes

func DeleteContraintesByIdPersonnes(tx DB, idPersonnes ...int64) (Ids, error)

func DeleteContraintesByIds

func DeleteContraintesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Contrainte in the database and returns the ids.

func DeleteDocumentsByIds

func DeleteDocumentsByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Document in the database and returns the ids.

func DeleteDonsByIds

func DeleteDonsByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Don in the database and returns the ids.

func DeleteEquipiersByIdCamps

func DeleteEquipiersByIdCamps(tx DB, idCamps ...int64) (Ids, error)

func DeleteEquipiersByIdPersonnes

func DeleteEquipiersByIdPersonnes(tx DB, idPersonnes ...int64) (Ids, error)

func DeleteEquipiersByIds

func DeleteEquipiersByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Equipier in the database and returns the ids.

func DeleteFacturesByIdPersonnes

func DeleteFacturesByIdPersonnes(tx DB, idPersonnes ...int64) (Ids, error)

func DeleteFacturesByIds

func DeleteFacturesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Facture in the database and returns the ids.

func DeleteGroupesByIdCamps

func DeleteGroupesByIdCamps(tx DB, idCamps ...int64) (Ids, error)

func DeleteGroupesByIds

func DeleteGroupesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Groupe in the database and returns the ids.

func DeleteInscriptionsByIds

func DeleteInscriptionsByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Inscription in the database and returns the ids.

func DeleteMessagesByIdFactures

func DeleteMessagesByIdFactures(tx DB, idFactures ...int64) (Ids, error)

func DeleteMessagesByIds

func DeleteMessagesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Message in the database and returns the ids.

func DeleteOrganismesByIdContactDons

func DeleteOrganismesByIdContactDons(tx DB, idContactDons ...int64) (Ids, error)

func DeleteOrganismesByIdContacts

func DeleteOrganismesByIdContacts(tx DB, idContacts ...int64) (Ids, error)

func DeleteOrganismesByIds

func DeleteOrganismesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Organisme in the database and returns the ids.

func DeletePaiementsByIdFactures

func DeletePaiementsByIdFactures(tx DB, idFactures ...int64) (Ids, error)

func DeletePaiementsByIds

func DeletePaiementsByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Paiement in the database and returns the ids.

func DeleteParticipantsByIdCamps

func DeleteParticipantsByIdCamps(tx DB, idCamps ...int64) (Ids, error)

func DeleteParticipantsByIdFactures

func DeleteParticipantsByIdFactures(tx DB, idFactures ...int64) (Ids, error)

func DeleteParticipantsByIdPersonnes

func DeleteParticipantsByIdPersonnes(tx DB, idPersonnes ...int64) (Ids, error)

func DeleteParticipantsByIds

func DeleteParticipantsByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Participant in the database and returns the ids.

func DeleteParticipantsimplesByIdCamps

func DeleteParticipantsimplesByIdCamps(tx DB, idCamps ...int64) (Ids, error)

func DeleteParticipantsimplesByIdPersonnes

func DeleteParticipantsimplesByIdPersonnes(tx DB, idPersonnes ...int64) (Ids, error)

func DeleteParticipantsimplesByIds

func DeleteParticipantsimplesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Participantsimple in the database and returns the ids.

func DeletePersonnesByIds

func DeletePersonnesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Personne in the database and returns the ids.

func DeleteSondagesByIdCamps

func DeleteSondagesByIdCamps(tx DB, idCamps ...int64) (Ids, error)

func DeleteSondagesByIdFactures

func DeleteSondagesByIdFactures(tx DB, idFactures ...int64) (Ids, error)

func DeleteSondagesByIds

func DeleteSondagesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Sondage in the database and returns the ids.

func DeleteStructureaidesByIds

func DeleteStructureaidesByIds(tx DB, ids ...int64) (Ids, error)

Deletes the Structureaide in the database and returns the ids.

func DeleteUsersByIds

func DeleteUsersByIds(tx DB, ids ...int64) (Ids, error)

Deletes the User in the database and returns the ids.

func ScanIds

func ScanIds(rs *sql.Rows) (Ids, error)

func (Ids) AsSQL

func (ids Ids) AsSQL() pq.Int64Array

func (Ids) AsSet

func (ids Ids) AsSet() Set

type Imageuploaded

type Imageuploaded struct {
	IdCamp   int64  `json:"id_camp" sql_on_delete:"CASCADE"`
	Filename string `json:"filename"`
	Lien     string `json:"lien"`
	Content  []byte `json:"content"`
}

Images contenues dans les lettres aux parents sql: ADD UNIQUE(id_camp, lien)

func ScanImageuploaded

func ScanImageuploaded(row *sql.Row) (Imageuploaded, error)

func (Imageuploaded) Delete

func (item Imageuploaded) Delete(tx DB) error

Delete the link Imageuploaded in the database. Only the 'IdCamp' fields are used.

type Imageuploadeds

type Imageuploadeds []Imageuploaded

func DeleteImageuploadedsByIdCamps

func DeleteImageuploadedsByIdCamps(tx DB, idCamps ...int64) (Imageuploadeds, error)

func ScanImageuploadeds

func ScanImageuploadeds(rs *sql.Rows) (Imageuploadeds, error)

func SelectAllImageuploadeds

func SelectAllImageuploadeds(tx DB) (Imageuploadeds, error)

func SelectImageuploadedsByIdCamps

func SelectImageuploadedsByIdCamps(tx DB, idCamps ...int64) (Imageuploadeds, error)

func (Imageuploadeds) ByIdCamp

func (items Imageuploadeds) ByIdCamp() map[int64]Imageuploadeds

ByIdCamp returns a map with 'IdCamp' as keys.

type InfoDon

type InfoDon struct {
	IdPaiementHelloAsso string `json:"id_paiement_hello_asso,omitempty"`
}

InfoDon est un champ caché qui stocke des infos additionnelles

func (*InfoDon) Scan

func (s *InfoDon) Scan(src interface{}) error

func (InfoDon) Value

func (s InfoDon) Value() (driver.Value, error)

type InfoEnvoi

type InfoEnvoi struct {
	Label string
	Time  Time
}

type InfosAsso

type InfosAsso struct {
	Title, Infos, Details string
}

type Inscription

type Inscription struct {
	Id          int64          `json:"id"`
	Info        String         `json:"info"`
	DateHeure   Time           `json:"date_heure"`
	CopiesMails pq.StringArray `json:"copies_mails"`

	Responsable  ResponsableLegal        `json:"responsable"`
	Participants ParticipantInscriptions `json:"participants"`

	PartageAdressesOK bool `json:"partage_adresses_ok"`
}

Inscription enregistre l'inscription faite via le formulaire publique. L'inscription publique est transformée en facture dès réception, cette table ne sert donc qu'à garder une trace en cas de problème. Entre autre, l'intégrité des camps n'est pas assurée

func DeleteInscriptionById

func DeleteInscriptionById(tx DB, id int64) (Inscription, error)

Deletes the Inscription and returns the item

func ScanInscription

func ScanInscription(row *sql.Row) (Inscription, error)

func SelectInscription

func SelectInscription(tx DB, id int64) (Inscription, error)

SelectInscription returns the entry matching id.

func (Inscription) AsItem

func (r Inscription) AsItem() Item

func (Inscription) Insert

func (item Inscription) Insert(tx DB) (out Inscription, err error)

Insert Inscription in the database and returns the item with id filled.

func (Inscription) Update

func (item Inscription) Update(tx DB) (out Inscription, err error)

Update Inscription in the database and returns the new version.

type Inscriptions

type Inscriptions map[int64]Inscription

func ScanInscriptions

func ScanInscriptions(rs *sql.Rows) (Inscriptions, error)

func SelectAllInscriptions

func SelectAllInscriptions(tx DB) (Inscriptions, error)

func SelectInscriptions

func SelectInscriptions(tx DB, ids ...int64) (Inscriptions, error)

SelectInscriptions returns the entry matching the given ids.

func (Inscriptions) Ids

func (m Inscriptions) Ids() Ids

type Int

type Int int

Int is integer

func (*Int) Scan

func (s *Int) Scan(src interface{}) error

func (Int) Sortable

func (i Int) Sortable() string

func (Int) String

func (i Int) String() string

type InvitationEquipier

type InvitationEquipier int

InvitationEquipier représente l'utilisation de la page équipier :

const (
	NonInvite InvitationEquipier = iota
	Invite
	Verifie
)

type Item

type Item struct {
	Id               IId
	Fields           F
	Bolds            B
	TextColors       Colors
	BackgroundColors Colors
}

Item représente un élément générique, identifiable et statique, qui définit sa mise en forme

func (Item) BackgroundColor

func (i Item) BackgroundColor(field Field) Color

BackgroundColor renvoie la couleur d'arrière plan, qui est assurée de ne pas être `nil`

func (Item) TextColor

func (i Item) TextColor(field Field) Color

TextColor renvoie la couleur du texte, qui est assurée de ne pas être `nil`

type ItemChilds

type ItemChilds struct {
	Item
	Childs []Item
}

ItemChilds est un arbre à un niveau

type Jours

type Jours []int

Jours stocke les indexes (0-based) des jours de présence d'un participant à un séjour Une liste vide indique la présence sur TOUT le séjour.

func (Jours) ClosestPlage

func (js Jours) ClosestPlage(datesCamp Plage) Plage

ClosestPlage renvoie la plage englobant les jours de présence

func (Jours) NbJours

func (js Jours) NbJours(datesCamp Plage) int

NbJours renvoie le nombre de jours de présence en évitant un éventuel doublon

func (Jours) Set

func (js Jours) Set() map[int]bool

Set renvoie un crible des indexes de présence

type Lettredirecteur

type Lettredirecteur struct {
	IdCamp             int64  `json:"id_camp" sql_on_delete:"CASCADE"`
	Html               string `json:"html"`
	UseCoordCentre     bool   `json:"use_coord_centre"`
	ShowAdressePostale bool   `json:"show_adresse_postale"`
	ColorCoord         string `json:"color_coord"`
}

LettreDirecteur conserve le html utilisé pour générer la lettre. En revanche, c'est bien le document stocké dans la base de données qui est utilisé ensuie. Le contenu html de la lettre peut contenir des images et alourdir significativement la table Camps. sql:ADD UNIQUE(id_camp)

func ScanLettredirecteur

func ScanLettredirecteur(row *sql.Row) (Lettredirecteur, error)

func SelectLettredirecteurByIdCamp

func SelectLettredirecteurByIdCamp(tx DB, idCamp int64) (item Lettredirecteur, found bool, err error)

SelectLettredirecteurByIdCamp return zero or one item, thanks to a UNIQUE constraint

func (Lettredirecteur) Delete

func (item Lettredirecteur) Delete(tx DB) error

Delete the link Lettredirecteur in the database. Only the 'IdCamp' fields are used.

type Lettredirecteurs

type Lettredirecteurs []Lettredirecteur

func DeleteLettredirecteursByIdCamps

func DeleteLettredirecteursByIdCamps(tx DB, idCamps ...int64) (Lettredirecteurs, error)

func ScanLettredirecteurs

func ScanLettredirecteurs(rs *sql.Rows) (Lettredirecteurs, error)

func SelectAllLettredirecteurs

func SelectAllLettredirecteurs(tx DB) (Lettredirecteurs, error)

func SelectLettredirecteursByIdCamps

func SelectLettredirecteursByIdCamps(tx DB, idCamps ...int64) (Lettredirecteurs, error)

func (Lettredirecteurs) ByIdCamp

func (items Lettredirecteurs) ByIdCamp() map[int64]Lettredirecteur

ByIdCamp returns a map with 'IdCamp' as keys.

type LiensCampParticipants

type LiensCampParticipants map[int64][]int64

type LiensFactureParticipants

type LiensFactureParticipants map[int64][]int64
type Links struct {
	EquipierContraintes map[int64]EquipierContraintes // id equipier ->
	ParticipantGroupe   map[int64]GroupeParticipant   // idParticipant -> groupe (optionnel)
	ParticipantEquipier map[int64]ParticipantEquipier // idParticipant -> idAnimateur (optionnel)
	GroupeContraintes   map[int64]GroupeContraintes   // idGroupe -> ids contraintes
	CampContraintes     map[int64]CampContraintes     // idCamp -> ids contraintes
	DocumentPersonnes   map[int64]DocumentPersonne    // idDocument->
	DocumentAides       map[int64]DocumentAide        // idDocument ->
	DocumentCamps       map[int64]DocumentCamp        // idDocument ->
	MessageDocuments    map[int64]MessageDocument     // idMessage ->
	MessageSondages     map[int64]MessageSondage      // idMessage ->
	MessagePlaceliberes map[int64]MessagePlacelibere  // idMessage ->
	MessageAttestations map[int64]MessageAttestation  // idMessage ->
	MessageMessages     map[int64]MessageMessage      // idMessage ->
	DonDonateurs        map[int64]DonDonateur         // idDon ->
}

type ListeAttente

type ListeAttente struct {
	Statut StatutAttente `json:"statut"`
	Raison string        `json:"raison"`
}

ListeAttente indique si le participant est en liste d'attente Le zéro signifie inscrit.

func (ListeAttente) IsInscrit

func (l ListeAttente) IsInscrit() bool

func (*ListeAttente) Scan

func (s *ListeAttente) Scan(src interface{}) error

func (ListeAttente) String

func (l ListeAttente) String() String

func (ListeAttente) Value

func (s ListeAttente) Value() (driver.Value, error)

type ListeVetements

type ListeVetements struct {
	Liste      []Vetement `json:"liste,omitempty"`
	Complement string     `json:"complement,omitempty"`
}

ListeVetements associe à un groupe une liste d'objet et un complement

func (*ListeVetements) Scan

func (s *ListeVetements) Scan(src interface{}) error

func (ListeVetements) Value

func (s ListeVetements) Value() (driver.Value, error)

type Maladies

type Maladies struct {
	Rubeole    bool `json:"rubeole,omitempty"`
	Varicelle  bool `json:"varicelle,omitempty"`
	Angine     bool `json:"angine,omitempty"`
	Oreillons  bool `json:"oreillons,omitempty"`
	Scarlatine bool `json:"scarlatine,omitempty"`
	Coqueluche bool `json:"coqueluche,omitempty"`
	Otite      bool `json:"otite,omitempty"`
	Rougeole   bool `json:"rougeole,omitempty"`
	Rhumatisme bool `json:"rhumatisme,omitempty"`
}

func (Maladies) List

func (m Maladies) List() []string

List retourne les maladies présentes.

type MapColors

type MapColors map[Field]Color

type MaterielSki

type MaterielSki struct {
	Need     string `json:"need,omitempty"`
	Mode     string `json:"mode,omitempty"`
	Casque   bool   `json:"casque,omitempty"`
	Poids    int    `json:"poids,omitempty"`
	Taille   int    `json:"taille,omitempty"`
	Pointure int    `json:"pointure,omitempty"`
}

MaterielSki indique le matériel souhaité par un participant.

func (*MaterielSki) IsZero

func (s *MaterielSki) IsZero() bool

func (MaterielSki) String

func (m MaterielSki) String() String

type MaterielSkiCamp

type MaterielSkiCamp struct {
	Actif      bool  `json:"actif,omitempty"`
	PrixAcve   Euros `json:"prix_acve,omitempty"`
	PrixLoueur Euros `json:"prix_loueur,omitempty"`
}

type Medecin

type Medecin struct {
	Nom string `json:"nom,omitempty"`
	Tel string `json:"tel,omitempty"`
}

type Message

type Message struct {
	Id        int64       `json:"id"`
	IdFacture int64       `json:"id_facture" sql_on_delete:"CASCADE"`
	Kind      MessageKind `json:"kind"`
	Created   Time        `json:"created"`
	Modified  Time        `json:"modified"`
	Vu        bool        `json:"vu"` // indique si le message a été vu (dépend du contexte)
}

Message encode un échange entre le centre d'inscription et le responsable d'un dossier sql:ADD UNIQUE(id, kind) Les définitions suivantes sont temporaires et permettent de solidifer la migration noTableSql:CREATE FUNCTION m_responsable() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MResponsable'; noTableSql:CREATE FUNCTION m_centre() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MCentre'; noTableSql:CREATE FUNCTION m_accuse_reception() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MAccuseReception'; noTableSql:CREATE FUNCTION m_facture() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MFacture'; noTableSql:CREATE FUNCTION m_documents() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MDocuments'; noTableSql:CREATE FUNCTION m_facture_acquittee() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MFactureAcquittee'; noTableSql:CREATE FUNCTION m_attestation_presence() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MAttestationPresence'; noTableSql:CREATE FUNCTION m_sondage() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MSondage'; noTableSql:CREATE FUNCTION m_inscription() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MInscription'; noTableSql:CREATE FUNCTION m_place_liberee() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #MessageKind.MPlaceLiberee';

func DeleteMessageById

func DeleteMessageById(tx DB, id int64) (Message, error)

Deletes the Message and returns the item

func ScanMessage

func ScanMessage(row *sql.Row) (Message, error)

func SelectMessage

func SelectMessage(tx DB, id int64) (Message, error)

SelectMessage returns the entry matching id.

func (Message) Insert

func (item Message) Insert(tx DB) (out Message, err error)

Insert Message in the database and returns the item with id filled.

func (Message) Update

func (item Message) Update(tx DB) (out Message, err error)

Update Message in the database and returns the new version.

type MessageAttestation

type MessageAttestation struct {
	IdMessage    int64        `json:"id_message" sql_on_delete:"CASCADE"`
	Distribution Distribution `json:"distribution"`

	GuardKind MessageKind `json:"guard_kind"`
}

MessageAttestation complète l'accès à une facture acquittée/attestation de présence sql:ADD UNIQUE(id_message) contraintes d'intégrité : sql:ADD CHECK(guard_kind = #MessageKind.MFactureAcquittee OR guard_kind = #MessageKind.MAttestationPresence) sql:ADD FOREIGN KEY (id_message, guard_kind) REFERENCES messages(id,kind) pour la migration noTableSql:CREATE FUNCTION d_mail() RETURNS int LANGUAGE sql IMMUTABLE PARALLEL SAFE AS 'SELECT #Distribution.DMail';

func ScanMessageAttestation

func ScanMessageAttestation(row *sql.Row) (MessageAttestation, error)

func SelectMessageAttestationByIdMessage

func SelectMessageAttestationByIdMessage(tx DB, idMessage int64) (item MessageAttestation, found bool, err error)

SelectMessageAttestationByIdMessage return zero or one item, thanks to a UNIQUE constraint

func (MessageAttestation) Delete

func (item MessageAttestation) Delete(tx DB) error

Delete the link MessageAttestation in the database. Only the 'IdMessage' fields are used.

type MessageAttestations

type MessageAttestations []MessageAttestation

func DeleteMessageAttestationsByIdMessages

func DeleteMessageAttestationsByIdMessages(tx DB, idMessages ...int64) (MessageAttestations, error)

func ScanMessageAttestations

func ScanMessageAttestations(rs *sql.Rows) (MessageAttestations, error)

func SelectAllMessageAttestations

func SelectAllMessageAttestations(tx DB) (MessageAttestations, error)

func SelectMessageAttestationsByIdMessages

func SelectMessageAttestationsByIdMessages(tx DB, idMessages ...int64) (MessageAttestations, error)

func (MessageAttestations) ByIdMessage

func (items MessageAttestations) ByIdMessage() map[int64]MessageAttestation

ByIdMessage returns a map with 'IdMessage' as keys.

type MessageDocument

type MessageDocument struct {
	IdMessage int64 `json:"id_message" sql_on_delete:"CASCADE"`
	IdCamp    int64 `json:"id_camp"`
	// contains filtered or unexported fields
}

MessageDocument complete un message 'documents' en donnant le camp concerné. sql:ADD UNIQUE(id_message) contraintes d'intégrité : sql:ADD CHECK(guardKind = #MessageKind.MDocuments) sql:ALTER COLUMN guardKind SET DEFAULT #MessageKind.MDocuments sql:ADD FOREIGN KEY (id_message, guardKind) REFERENCES messages(id,kind)

func ScanMessageDocument

func ScanMessageDocument(row *sql.Row) (MessageDocument, error)

func SelectMessageDocumentByIdMessage

func SelectMessageDocumentByIdMessage(tx DB, idMessage int64) (item MessageDocument, found bool, err error)

SelectMessageDocumentByIdMessage return zero or one item, thanks to a UNIQUE constraint

func (MessageDocument) Delete

func (item MessageDocument) Delete(tx DB) error

Delete the link MessageDocument in the database. Only the 'IdMessage' 'IdCamp' fields are used.

type MessageDocuments

type MessageDocuments []MessageDocument

func DeleteMessageDocumentsByIdCamps

func DeleteMessageDocumentsByIdCamps(tx DB, idCamps ...int64) (MessageDocuments, error)

func DeleteMessageDocumentsByIdMessages

func DeleteMessageDocumentsByIdMessages(tx DB, idMessages ...int64) (MessageDocuments, error)

func ScanMessageDocuments

func ScanMessageDocuments(rs *sql.Rows) (MessageDocuments, error)

func SelectAllMessageDocuments

func SelectAllMessageDocuments(tx DB) (MessageDocuments, error)

func SelectMessageDocumentsByIdCamps

func SelectMessageDocumentsByIdCamps(tx DB, idCamps ...int64) (MessageDocuments, error)

func SelectMessageDocumentsByIdMessages

func SelectMessageDocumentsByIdMessages(tx DB, idMessages ...int64) (MessageDocuments, error)

func (MessageDocuments) ByIdCamp

func (items MessageDocuments) ByIdCamp() map[int64]MessageDocuments

ByIdCamp returns a map with 'IdCamp' as keys.

func (MessageDocuments) ByIdMessage

func (items MessageDocuments) ByIdMessage() map[int64]MessageDocument

ByIdMessage returns a map with 'IdMessage' as keys.

type MessageKind

type MessageKind uint8

MessageKind détermine la catégorie de l'échange

const (
	MSupprime MessageKind = iota // Message supprimé

	// expediteur : responsable
	MResponsable // Message

	// expediteur : centre d'inscription
	MCentre // Message du centre

	MAccuseReception     // Inscription validée
	MFacture             // Facture
	MDocuments           // Document des séjours
	MFactureAcquittee    // Facture acquittée
	MAttestationPresence // Attestation de présence
	MSondage             // Avis sur le séjour

	// enregistre le moment d'inscription
	MInscription // Moment d'inscription

	MPlaceLiberee // Place libérée

	// n'est jamais utilisé dans la base mais simplifie le frontend
	MPaiement //
)

func (MessageKind) Color

func (m MessageKind) Color() HexColor

func (MessageKind) MailTitle

func (m MessageKind) MailTitle() string

func (MessageKind) String

func (m MessageKind) String() string

type MessageMessage

type MessageMessage struct {
	IdMessage int64  `json:"id_message" sql_on_delete:"CASCADE"`
	Contenu   String `json:"contenu"`

	GuardKind MessageKind `json:"guard_kind"`
}

MessageMessage complète l'accès à un message libre sql:ADD UNIQUE(id_message) contraintes d'intégrité : sql:ADD CHECK(guard_kind = #MessageKind.MResponsable OR guard_kind = #MessageKind.MCentre) sql:ADD FOREIGN KEY (id_message, guard_kind) REFERENCES messages(id,kind)

func ScanMessageMessage

func ScanMessageMessage(row *sql.Row) (MessageMessage, error)

func SelectMessageMessageByIdMessage

func SelectMessageMessageByIdMessage(tx DB, idMessage int64) (item MessageMessage, found bool, err error)

SelectMessageMessageByIdMessage return zero or one item, thanks to a UNIQUE constraint

func (MessageMessage) Delete

func (item MessageMessage) Delete(tx DB) error

Delete the link MessageMessage in the database. Only the 'IdMessage' fields are used.

type MessageMessages

type MessageMessages []MessageMessage

func DeleteMessageMessagesByIdMessages

func DeleteMessageMessagesByIdMessages(tx DB, idMessages ...int64) (MessageMessages, error)

func ScanMessageMessages

func ScanMessageMessages(rs *sql.Rows) (MessageMessages, error)

func SelectAllMessageMessages

func SelectAllMessageMessages(tx DB) (MessageMessages, error)

func SelectMessageMessagesByIdMessages

func SelectMessageMessagesByIdMessages(tx DB, idMessages ...int64) (MessageMessages, error)

func (MessageMessages) ByIdMessage

func (items MessageMessages) ByIdMessage() map[int64]MessageMessage

ByIdMessage returns a map with 'IdMessage' as keys.

type MessagePlacelibere

type MessagePlacelibere struct {
	IdMessage     int64 `json:"id_message" sql_on_delete:"CASCADE"`
	IdParticipant int64 `json:"id_participant"`
	// contains filtered or unexported fields
}

MessagePlacelibere complète une notification de place libérée sql:ADD UNIQUE(id_message) contraintes d'intégrité : sql:ADD CHECK(guardKind = #MessageKind.MPlaceLiberee) sql:ALTER COLUMN guardKind SET DEFAULT #MessageKind.MPlaceLiberee sql:ADD FOREIGN KEY (id_message, guardKind) REFERENCES messages(id,kind)

func ScanMessagePlacelibere

func ScanMessagePlacelibere(row *sql.Row) (MessagePlacelibere, error)

func SelectMessagePlacelibereByIdMessage

func SelectMessagePlacelibereByIdMessage(tx DB, idMessage int64) (item MessagePlacelibere, found bool, err error)

SelectMessagePlacelibereByIdMessage return zero or one item, thanks to a UNIQUE constraint

func (MessagePlacelibere) Delete

func (item MessagePlacelibere) Delete(tx DB) error

Delete the link MessagePlacelibere in the database. Only the 'IdMessage' 'IdParticipant' fields are used.

type MessagePlaceliberes

type MessagePlaceliberes []MessagePlacelibere

func DeleteMessagePlaceliberesByIdMessages

func DeleteMessagePlaceliberesByIdMessages(tx DB, idMessages ...int64) (MessagePlaceliberes, error)

func DeleteMessagePlaceliberesByIdParticipants

func DeleteMessagePlaceliberesByIdParticipants(tx DB, idParticipants ...int64) (MessagePlaceliberes, error)

func ScanMessagePlaceliberes

func ScanMessagePlaceliberes(rs *sql.Rows) (MessagePlaceliberes, error)

func SelectAllMessagePlaceliberes

func SelectAllMessagePlaceliberes(tx DB) (MessagePlaceliberes, error)

func SelectMessagePlaceliberesByIdMessages

func SelectMessagePlaceliberesByIdMessages(tx DB, idMessages ...int64) (MessagePlaceliberes, error)

func SelectMessagePlaceliberesByIdParticipants

func SelectMessagePlaceliberesByIdParticipants(tx DB, idParticipants ...int64) (MessagePlaceliberes, error)

func (MessagePlaceliberes) ByIdMessage

func (items MessagePlaceliberes) ByIdMessage() map[int64]MessagePlacelibere

ByIdMessage returns a map with 'IdMessage' as keys.

func (MessagePlaceliberes) ByIdParticipant

func (items MessagePlaceliberes) ByIdParticipant() map[int64]MessagePlaceliberes

ByIdParticipant returns a map with 'IdParticipant' as keys.

type MessageSondage

type MessageSondage struct {
	IdMessage int64 `json:"id_message" sql_on_delete:"CASCADE"`
	IdCamp    int64 `json:"id_camp"`
	// contains filtered or unexported fields
}

MessageSondage complete un message 'sondage' en donnant le camp concerné. sql:ADD UNIQUE(id_message) contraintes d'intégrité : sql:ADD CHECK(guardKind = #MessageKind.MSondage) sql:ALTER COLUMN guardKind SET DEFAULT #MessageKind.MSondage sql:ADD FOREIGN KEY (id_message, guardKind) REFERENCES messages(id,kind) sql:ALTER COLUMN isSimple SET DEFAULT FALSE sql:ADD CHECK(isSimple = FALSE) sql:ADD FOREIGN KEY (id_camp, isSimple) REFERENCES camps(id,inscription_simple)

func ScanMessageSondage

func ScanMessageSondage(row *sql.Row) (MessageSondage, error)

func SelectMessageSondageByIdMessage

func SelectMessageSondageByIdMessage(tx DB, idMessage int64) (item MessageSondage, found bool, err error)

SelectMessageSondageByIdMessage return zero or one item, thanks to a UNIQUE constraint

func (MessageSondage) Delete

func (item MessageSondage) Delete(tx DB) error

Delete the link MessageSondage in the database. Only the 'IdMessage' 'IdCamp' fields are used.

type MessageSondages

type MessageSondages []MessageSondage

func DeleteMessageSondagesByIdCamps

func DeleteMessageSondagesByIdCamps(tx DB, idCamps ...int64) (MessageSondages, error)

func DeleteMessageSondagesByIdMessages

func DeleteMessageSondagesByIdMessages(tx DB, idMessages ...int64) (MessageSondages, error)

func ScanMessageSondages

func ScanMessageSondages(rs *sql.Rows) (MessageSondages, error)

func SelectAllMessageSondages

func SelectAllMessageSondages(tx DB) (MessageSondages, error)

func SelectMessageSondagesByIdCamps

func SelectMessageSondagesByIdCamps(tx DB, idCamps ...int64) (MessageSondages, error)

func SelectMessageSondagesByIdMessages

func SelectMessageSondagesByIdMessages(tx DB, idMessages ...int64) (MessageSondages, error)

func (MessageSondages) ByIdCamp

func (items MessageSondages) ByIdCamp() map[int64]MessageSondages

ByIdCamp returns a map with 'IdCamp' as keys.

func (MessageSondages) ByIdMessage

func (items MessageSondages) ByIdMessage() map[int64]MessageSondage

ByIdMessage returns a map with 'IdMessage' as keys.

type Messages

type Messages map[int64]Message

func ScanMessages

func ScanMessages(rs *sql.Rows) (Messages, error)

func SelectAllMessages

func SelectAllMessages(tx DB) (Messages, error)

func SelectMessages

func SelectMessages(tx DB, ids ...int64) (Messages, error)

SelectMessages returns the entry matching the given ids.

func SelectMessagesByIdFactures

func SelectMessagesByIdFactures(tx DB, idFactures ...int64) (Messages, error)

func (Messages) Ids

func (m Messages) Ids() Ids

type ModePaiment

type ModePaiment string

Parmis "cb" "cheque" "vir" "espece" "ancv" "helloasso"

const (
	MPAucun     ModePaiment = ""          // -
	MPVirement  ModePaiment = "vir"       // Virement
	MPCheque    ModePaiment = "cheque"    // Chèque
	MPEspece    ModePaiment = "esp"       // Espèces
	MPCarte     ModePaiment = "cb"        // Carte bancaire
	MPAncv      ModePaiment = "ancv"      // ANCV
	MPHelloasso ModePaiment = "helloasso" // Hello Asso
)

func (ModePaiment) String

func (m ModePaiment) String() String

type Modules

type Modules struct {
	Personnes     int `json:"personnes,omitempty"`
	Camps         int `json:"camps,omitempty"`
	Inscriptions  int `json:"inscriptions,omitempty"`
	SuiviCamps    int `json:"suivi_camps,omitempty"`
	SuiviDossiers int `json:"suivi_dossiers,omitempty"`
	Paiements     int `json:"paiements,omitempty"`
	Aides         int `json:"aides,omitempty"`
	Equipiers     int `json:"equipiers,omitempty"`
	Dons          int `json:"dons,omitempty"`
}

Permissions représente les droites sur chaque module, qui interprète l'entier fourni. 0 signifie non utilisation.

func (*Modules) Scan

func (m *Modules) Scan(src interface{}) error

func (Modules) ToReadOnly

func (m Modules) ToReadOnly() Modules

func (Modules) Value

func (m Modules) Value() (driver.Value, error)

type Montant

type Montant struct {
	// contains filtered or unexported fields
}

Montant modélise une valeur pour être (ou non) relative

func (Montant) Sortable

func (m Montant) Sortable() string

func (Montant) String

func (m Montant) String() string

func (Montant) ValeurEffective

func (m Montant) ValeurEffective(nbJours int) Euros

type OptionPrixCamp

type OptionPrixCamp struct {
	Active           string            `json:"active,omitempty"`
	Semaine          OptionSemaineCamp `json:"semaine,omitempty"`
	Statut           []PrixParStatut   `json:"statut,omitempty"`
	Jour             []Euros           `json:"jour,omitempty"`
	QuotientFamilial [4]Euros          `json:"quotient_familial,omitempty"`
}

OptionPrixCamp stocke une option sur le prix d'un camp. Une seule est effective, déterminée par Active

func (*OptionPrixCamp) Scan

func (s *OptionPrixCamp) Scan(src interface{}) error

func (OptionPrixCamp) String

func (o OptionPrixCamp) String() string

func (OptionPrixCamp) Value

func (s OptionPrixCamp) Value() (driver.Value, error)

type OptionPrixParticipant

type OptionPrixParticipant struct {
	Semaine          Semaine `json:"semaine,omitempty"`
	Statut           int64   `json:"statut,omitempty"`
	QuotientFamilial Int     `json:"quotient_familial,omitempty"`
	Jour             Jours   `json:"jour,omitempty"`
}

OptionPrixParticipant répond à OptionPrixCamp. L'option est active si :

  • elle est active dans le camp
  • elle est non nulle dans le participant

func (OptionPrixParticipant) IsNonNil

func (op OptionPrixParticipant) IsNonNil(categorie string) bool

IsNonNil renvoie `true` si une option est active pour la catégorie demandée.

func (*OptionPrixParticipant) Scan

func (s *OptionPrixParticipant) Scan(src interface{}) error

func (OptionPrixParticipant) Value

func (s OptionPrixParticipant) Value() (driver.Value, error)

type OptionSemaineCamp

type OptionSemaineCamp struct {
	Plage1 Plage `json:"plage_1"`
	Plage2 Plage `json:"plage_2"`
	Prix1  Euros `json:"prix_1,omitempty"`
	Prix2  Euros `json:"prix_2,omitempty"`
}

type OptionnalBool

type OptionnalBool int8

OptionnalBool représente une quantité à 3 états : Oui, Non, Indifférent

const (
	OBPeutEtre OptionnalBool = 0  // Peut-être
	OBOui      OptionnalBool = 1  // Oui
	OBNon      OptionnalBool = -1 // Non
)

func (OptionnalBool) Bool

func (b OptionnalBool) Bool() bool

Bool renvoi `true` uniquement si `b` vaut Oui

func (OptionnalBool) Check

func (b OptionnalBool) Check() error

type OptionnalId

type OptionnalId sql.NullInt64

func FromIId

func FromIId(id IId) OptionnalId

func NewOptionnalId

func NewOptionnalId(id int64) OptionnalId

NewOptionnalId renvoie un id valid.

func NullId

func NullId() OptionnalId

func (OptionnalId) AsIId

func (o OptionnalId) AsIId() IId

AsIId renvoie nil ou un Id

func (OptionnalId) Is

func (o OptionnalId) Is(id int64) bool

Is renvoie `true` si l'id est valide et vaut `id`

func (OptionnalId) IsNil

func (o OptionnalId) IsNil() bool

func (OptionnalId) IsNotNil

func (o OptionnalId) IsNotNil() bool

func (*OptionnalId) Scan

func (s *OptionnalId) Scan(src interface{}) error

custom types

func (OptionnalId) Value

func (s OptionnalId) Value() (driver.Value, error)

type OptionnalPlage

type OptionnalPlage struct {
	Plage
	Active bool `json:"active,omitempty"`
}

func (*OptionnalPlage) Scan

func (s *OptionnalPlage) Scan(src interface{}) error

func (OptionnalPlage) Value

func (s OptionnalPlage) Value() (driver.Value, error)

type OptionsCamp

type OptionsCamp struct {
	Bus         BusCamp         `json:"bus,omitempty"`
	MaterielSki MaterielSkiCamp `json:"materiel_ski,omitempty"`
}

func (*OptionsCamp) Scan

func (s *OptionsCamp) Scan(src interface{}) error

func (OptionsCamp) Value

func (s OptionsCamp) Value() (driver.Value, error)

type OptionsParticipant

type OptionsParticipant struct {
	Bus         Bus         `json:"bus"`
	MaterielSki MaterielSki `json:"materiel_ski"`
}

OptionsParticipant donne les champs optionnels pour un inscrit

func (*OptionsParticipant) Scan

func (s *OptionsParticipant) Scan(src interface{}) error

func (OptionsParticipant) Value

func (s OptionsParticipant) Value() (driver.Value, error)

type Organisme

type Organisme struct {
	Id  int64  `json:"id"`
	Nom String `json:"nom"`

	ContactPropre Bool        `json:"contact_propre"`
	Contact       Coordonnees `json:"contact"`
	IdContact     OptionnalId `json:"id_contact" sql_foreign_key:"personne"`

	IdContactDon OptionnalId `json:"id_contact_don" sql_foreign_key:"personne"`
	Exemplaires  Exemplaires `json:"exemplaires"` // pour les communications
}

Organisme désigne un groupe de personne (typiquement une église) Un organisme a soit des coordonnées propre, soit une personne de contact En plus, un contact pour les dons peut être ajouté. sql:ADD CHECK(contact_propre <> (id_contact IS NOT NULL))

func DeleteOrganismeById

func DeleteOrganismeById(tx DB, id int64) (Organisme, error)

Deletes the Organisme and returns the item

func ScanOrganisme

func ScanOrganisme(row *sql.Row) (Organisme, error)

func SelectOrganisme

func SelectOrganisme(tx DB, id int64) (Organisme, error)

SelectOrganisme returns the entry matching id.

func (Organisme) Insert

func (item Organisme) Insert(tx DB) (out Organisme, err error)

Insert Organisme in the database and returns the item with id filled.

func (Organisme) Update

func (item Organisme) Update(tx DB) (out Organisme, err error)

Update Organisme in the database and returns the new version.

type Organismes

type Organismes map[int64]Organisme

func ScanOrganismes

func ScanOrganismes(rs *sql.Rows) (Organismes, error)

func SelectAllOrganismes

func SelectAllOrganismes(tx DB) (Organismes, error)

func SelectOrganismes

func SelectOrganismes(tx DB, ids ...int64) (Organismes, error)

SelectOrganismes returns the entry matching the given ids.

func SelectOrganismesByIdContactDons

func SelectOrganismesByIdContactDons(tx DB, idContactDons ...int64) (Organismes, error)

func SelectOrganismesByIdContacts

func SelectOrganismesByIdContacts(tx DB, idContacts ...int64) (Organismes, error)

func (Organismes) Ids

func (m Organismes) Ids() Ids

type Paiement

type Paiement struct {
	Id        int64 `json:"id"`
	IdFacture int64 `json:"id_facture"`

	IsAcompte       Bool        `json:"is_acompte"`
	IsRemboursement Bool        `json:"is_remboursement"`
	InBordereau     Time        `json:"in_bordereau"`
	LabelPayeur     String      `json:"label_payeur"`
	NomBanque       String      `json:"nom_banque"`
	ModePaiement    ModePaiment `json:"mode_paiement"`
	Numero          String      `json:"numero"`
	Valeur          Euros       `json:"valeur"`
	IsInvalide      Bool        `json:"is_invalide"`
	DateReglement   Time        `json:"date_reglement"`
	Details         String      `json:"details"`
}

--------------------------------- ---------------------------------

func DeletePaiementById

func DeletePaiementById(tx DB, id int64) (Paiement, error)

Deletes the Paiement and returns the item

func ScanPaiement

func ScanPaiement(row *sql.Row) (Paiement, error)

func SelectPaiement

func SelectPaiement(tx DB, id int64) (Paiement, error)

SelectPaiement returns the entry matching id.

func (Paiement) Description

func (r Paiement) Description() (string, string)

Description renvoie une description et le montant, au format HTML

func (Paiement) Insert

func (item Paiement) Insert(tx DB) (out Paiement, err error)

Insert Paiement in the database and returns the item with id filled.

func (Paiement) Update

func (item Paiement) Update(tx DB) (out Paiement, err error)

Update Paiement in the database and returns the new version.

type Paiements

type Paiements map[int64]Paiement

func ScanPaiements

func ScanPaiements(rs *sql.Rows) (Paiements, error)

func SelectAllPaiements

func SelectAllPaiements(tx DB) (Paiements, error)

func SelectPaiements

func SelectPaiements(tx DB, ids ...int64) (Paiements, error)

SelectPaiements returns the entry matching the given ids.

func SelectPaiementsByIdFactures

func SelectPaiementsByIdFactures(tx DB, idFactures ...int64) (Paiements, error)

func (Paiements) Ids

func (m Paiements) Ids() Ids

type Participant

type Participant struct {
	Id         int64       `json:"id"`
	IdCamp     int64       `json:"id_camp"`
	IdPersonne int64       `json:"id_personne" sql_on_delete:"CASCADE"`
	IdFacture  OptionnalId `json:"id_facture" sql_on_delete:"SET NULL"`

	ListeAttente ListeAttente          `json:"liste_attente"`
	Remises      Remises               `json:"remises"`
	OptionPrix   OptionPrixParticipant `json:"option_prix"`
	Options      OptionsParticipant    `json:"options"`

	// Moment d'inscription
	DateHeure Time `json:"date_heure"`
	// contains filtered or unexported fields
}

Participant représente un inscrit sur un séjour complet (éventuellement sur liste d'attente) sql:ADD UNIQUE(id_personne, id_camp) nécessaire pour être référencé sql:ADD UNIQUE(id, id_camp) assure qu'un participant est lié à un camp complet sql:ALTER COLUMN isSimple SET DEFAULT false sql:ADD CHECK(isSimple = false) sql:ADD FOREIGN KEY (id_camp, isSimple) REFERENCES camps(id,inscription_simple)

func DeleteParticipantById

func DeleteParticipantById(tx DB, id int64) (Participant, error)

Deletes the Participant and returns the item

func ScanParticipant

func ScanParticipant(row *sql.Row) (Participant, error)

func SelectParticipant

func SelectParticipant(tx DB, id int64) (Participant, error)

SelectParticipant returns the entry matching id.

func (Participant) Insert

func (item Participant) Insert(tx DB) (out Participant, err error)

Insert Participant in the database and returns the item with id filled.

func (Participant) Update

func (item Participant) Update(tx DB) (out Participant, err error)

Update Participant in the database and returns the new version.

type ParticipantEquipier

type ParticipantEquipier struct {
	IdParticipant int64 `json:"id_participant" sql_on_delete:"CASCADE"`
	IdEquipier    int64 `json:"id_equipier" sql_on_delete:"CASCADE"`
	// redondance pour assurer l'intégrité
	IdGroupe int64 `json:"id_groupe" sql_on_delete:"CASCADE"`
}

ParticipantEquipier associe un animateur de référence à un inscrit sql:ADD UNIQUE (id_participant) sql:ADD FOREIGN KEY (id_participant, id_groupe) REFERENCES groupe_participants(id_participant, id_groupe) sql:ADD FOREIGN KEY (id_equipier, id_groupe) REFERENCES groupe_equipiers(id_equipier, id_groupe) ON DELETE CASCADE

func ScanParticipantEquipier

func ScanParticipantEquipier(row *sql.Row) (ParticipantEquipier, error)

func SelectParticipantEquipierByIdParticipant

func SelectParticipantEquipierByIdParticipant(tx DB, idParticipant int64) (item ParticipantEquipier, found bool, err error)

SelectParticipantEquipierByIdParticipant return zero or one item, thanks to a UNIQUE constraint

func (ParticipantEquipier) Delete

func (item ParticipantEquipier) Delete(tx DB) error

Delete the link ParticipantEquipier in the database. Only the 'IdParticipant' 'IdEquipier' 'IdGroupe' fields are used.

type ParticipantEquipiers

type ParticipantEquipiers []ParticipantEquipier

func DeleteParticipantEquipiersByIdEquipiers

func DeleteParticipantEquipiersByIdEquipiers(tx DB, idEquipiers ...int64) (ParticipantEquipiers, error)

func DeleteParticipantEquipiersByIdGroupes

func DeleteParticipantEquipiersByIdGroupes(tx DB, idGroupes ...int64) (ParticipantEquipiers, error)

func DeleteParticipantEquipiersByIdParticipants

func DeleteParticipantEquipiersByIdParticipants(tx DB, idParticipants ...int64) (ParticipantEquipiers, error)

func ScanParticipantEquipiers

func ScanParticipantEquipiers(rs *sql.Rows) (ParticipantEquipiers, error)

func SelectAllParticipantEquipiers

func SelectAllParticipantEquipiers(tx DB) (ParticipantEquipiers, error)

func SelectParticipantEquipiersByIdEquipiers

func SelectParticipantEquipiersByIdEquipiers(tx DB, idEquipiers ...int64) (ParticipantEquipiers, error)

func SelectParticipantEquipiersByIdGroupes

func SelectParticipantEquipiersByIdGroupes(tx DB, idGroupes ...int64) (ParticipantEquipiers, error)

func SelectParticipantEquipiersByIdParticipants

func SelectParticipantEquipiersByIdParticipants(tx DB, idParticipants ...int64) (ParticipantEquipiers, error)

func (ParticipantEquipiers) ByIdEquipier

func (items ParticipantEquipiers) ByIdEquipier() map[int64]ParticipantEquipiers

ByIdEquipier returns a map with 'IdEquipier' as keys.

func (ParticipantEquipiers) ByIdGroupe

func (items ParticipantEquipiers) ByIdGroupe() map[int64]ParticipantEquipiers

ByIdGroupe returns a map with 'IdGroupe' as keys.

func (ParticipantEquipiers) ByIdParticipant

func (items ParticipantEquipiers) ByIdParticipant() map[int64]ParticipantEquipier

ByIdParticipant returns a map with 'IdParticipant' as keys.

type ParticipantInscription

type ParticipantInscription struct {
	Lienid        IdentificationId      `json:"lienid"`
	Nom           String                `json:"nom"`
	Prenom        String                `json:"prenom"`
	DateNaissance Date                  `json:"date_naissance"`
	Sexe          Sexe                  `json:"sexe"`
	IdCamp        int64                 `json:"id_camp"`
	Options       OptionsParticipant    `json:"options"`
	OptionsPrix   OptionPrixParticipant `json:"options_prix"`
}

func (ParticipantInscription) ToPersonne

func (r ParticipantInscription) ToPersonne() Personne

type ParticipantInscriptions

type ParticipantInscriptions []ParticipantInscription

func (*ParticipantInscriptions) Scan

func (s *ParticipantInscriptions) Scan(src interface{}) error

func (ParticipantInscriptions) Value

type Participants

type Participants map[int64]Participant

func ScanParticipants

func ScanParticipants(rs *sql.Rows) (Participants, error)

func SelectAllParticipants

func SelectAllParticipants(tx DB) (Participants, error)

func SelectParticipants

func SelectParticipants(tx DB, ids ...int64) (Participants, error)

SelectParticipants returns the entry matching the given ids.

func SelectParticipantsByIdCamps

func SelectParticipantsByIdCamps(tx DB, idCamps ...int64) (Participants, error)

func SelectParticipantsByIdFactures

func SelectParticipantsByIdFactures(tx DB, idFactures ...int64) (Participants, error)

func SelectParticipantsByIdPersonnes

func SelectParticipantsByIdPersonnes(tx DB, idPersonnes ...int64) (Participants, error)

func (Participants) Ids

func (m Participants) Ids() Ids

func (Participants) Resoud

Resoud parcourt la table des participants et renvois les associations facture -> participants, camp -> inscrits; `groupes` n'influe que sur les liens camp -> inscrits : il est possible de passer `nil` si on a besoin uniquement des liens factures -> participants

type Participantsimple

type Participantsimple struct {
	Id         int64 `json:"id"`
	IdPersonne int64 `json:"id_personne" sql_on_delete:"CASCADE"`
	IdCamp     int64 `json:"id_camp"` // devrait être simple

	// Moment d'inscription
	DateHeure Time   `json:"date_heure"`
	Info      String `json:"info"`
	// contains filtered or unexported fields
}

Participantsimple représente un inscrit sur un séjour simplifié, sans dossier ni groupe associé. sql:ADD UNIQUE(id_personne, id_camp) assure qu'un participant simple appartient à un camp simple sql:ALTER COLUMN isSimple SET DEFAULT TRUE sql:ADD CHECK(isSimple = TRUE) sql:ADD FOREIGN KEY (id_camp, isSimple) REFERENCES camps(id,inscription_simple)

func DeleteParticipantsimpleById

func DeleteParticipantsimpleById(tx DB, id int64) (Participantsimple, error)

Deletes the Participantsimple and returns the item

func ScanParticipantsimple

func ScanParticipantsimple(row *sql.Row) (Participantsimple, error)

func SelectParticipantsimple

func SelectParticipantsimple(tx DB, id int64) (Participantsimple, error)

SelectParticipantsimple returns the entry matching id.

func (Participantsimple) Insert

func (item Participantsimple) Insert(tx DB) (out Participantsimple, err error)

Insert Participantsimple in the database and returns the item with id filled.

func (Participantsimple) Update

func (item Participantsimple) Update(tx DB) (out Participantsimple, err error)

Update Participantsimple in the database and returns the new version.

type Participantsimples

type Participantsimples map[int64]Participantsimple

func ScanParticipantsimples

func ScanParticipantsimples(rs *sql.Rows) (Participantsimples, error)

func SelectAllParticipantsimples

func SelectAllParticipantsimples(tx DB) (Participantsimples, error)

func SelectParticipantsimples

func SelectParticipantsimples(tx DB, ids ...int64) (Participantsimples, error)

SelectParticipantsimples returns the entry matching the given ids.

func SelectParticipantsimplesByIdCamps

func SelectParticipantsimplesByIdCamps(tx DB, idCamps ...int64) (Participantsimples, error)

func SelectParticipantsimplesByIdPersonnes

func SelectParticipantsimplesByIdPersonnes(tx DB, idPersonnes ...int64) (Participantsimples, error)

func (Participantsimples) Ids

func (m Participantsimples) Ids() Ids

type Pays

type Pays string

Pays est le code ISO 3166 d'un pays

func (Pays) Sortable

func (p Pays) Sortable() string

func (Pays) String

func (p Pays) String() string

type Personne

type Personne struct {
	Id int64 `json:"id"`

	BasePersonne

	VersionPapier    Bool           `json:"version_papier"`
	PubHiver         Bool           `json:"pub_hiver"`
	PubEte           Bool           `json:"pub_ete"`
	EchoRocher       Bool           `json:"echo_rocher"`
	RangMembreAsso   RangMembreAsso `json:"rang_membre_asso"`
	QuotientFamilial Int            `json:"quotient_familial"`
	Cotisation       Cotisation     `json:"cotisation"` // dernière année
	Eonews           Bool           `json:"eonews"`
	FicheSanitaire   FicheSanitaire `json:"fiche_sanitaire"`

	// Si `true` indique un profil non vérifié. Les personnes temporaires
	// peuvent être supprimées à tout moment (nécessitant une redirection des tables
	// documents, participants,...)
	IsTemporaire Bool `json:"is_temporaire"`
}

Personne représente les attributs d'une personne

func DeletePersonneById

func DeletePersonneById(tx DB, id int64) (Personne, error)

Deletes the Personne and returns the item

func ScanPersonne

func ScanPersonne(row *sql.Row) (Personne, error)

func SelectPersonne

func SelectPersonne(tx DB, id int64) (Personne, error)

SelectPersonne returns the entry matching id.

func (Personne) Insert

func (item Personne) Insert(tx DB) (out Personne, err error)

Insert Personne in the database and returns the item with id filled.

func (Personne) ToInscription

func (r Personne) ToInscription() ResponsableLegal

ToInscription renvoie les champs de la personne vus comme le responsable d'une inscription

func (Personne) ToParticipantInscription

func (r Personne) ToParticipantInscription() ParticipantInscription

ToParticipantInscription renvoie la personne comme un participant d'une inscription

func (Personne) Update

func (item Personne) Update(tx DB) (out Personne, err error)

Update Personne in the database and returns the new version.

type Personnes

type Personnes map[int64]Personne

func ScanPersonnes

func ScanPersonnes(rs *sql.Rows) (Personnes, error)

func SelectAllPersonnes

func SelectAllPersonnes(tx DB) (Personnes, error)

func SelectPersonnes

func SelectPersonnes(tx DB, ids ...int64) (Personnes, error)

SelectPersonnes returns the entry matching the given ids.

func (Personnes) Ids

func (m Personnes) Ids() Ids

type Plage

type Plage struct {
	From Date `json:"from,omitempty"`
	To   Date `json:"to,omitempty"`
}

func (Plage) Contains

func (plage Plage) Contains(date time.Time) bool

Contains indique si `date` est contenue dans la plage. Le critère est lâche : si `plage` est nulle, la `date` est acceptée.

func (Plage) ExpandMonths

func (plage Plage) ExpandMonths() []Date

func (Plage) NbJours

func (plage Plage) NbJours() int

NbJours renvoie la durée de la plage, arrivée et départ COMPRIS.

func (*Plage) Scan

func (s *Plage) Scan(src interface{}) error

func (Plage) Sortable

func (p Plage) Sortable() string

func (Plage) String

func (p Plage) String() string

func (Plage) Value

func (s Plage) Value() (driver.Value, error)

type Pourcent

type Pourcent int

Pourcent est entre 0 et 100

func (Pourcent) Sortable

func (p Pourcent) Sortable() string

func (Pourcent) String

func (p Pourcent) String() string

type PrixParStatut

type PrixParStatut struct {
	Id          int64  `json:"id,omitempty"`
	Prix        Euros  `json:"prix,omitempty"`
	Statut      String `json:"statut,omitempty"`
	Description String `json:"description,omitempty"`
}

func (PrixParStatut) AsItem

func (p PrixParStatut) AsItem() Item

type RGBA

type RGBA struct {
	R, G, B, A uint8
}

func (RGBA) AHex

func (c RGBA) AHex() string

func (RGBA) Hex

func (c RGBA) Hex() string

type RangMembreAsso

type RangMembreAsso string

RangMembreAsso indique la position dans l'association

const (
	RMANonMembre RangMembreAsso = ""  // Non membre
	RMAMembre    RangMembreAsso = "1" // Membre
	RMACA        RangMembreAsso = "2" // Membre du C.A.
	RMABureau    RangMembreAsso = "3" // Membre du bureau
)

func (RangMembreAsso) AtLeast

func (r RangMembreAsso) AtLeast(other RangMembreAsso) bool

AtLeast renvoie `true` si `r` fait partie (au sens large) de la catégorie `other`

func (RangMembreAsso) Sortable

func (r RangMembreAsso) Sortable() string

func (RangMembreAsso) String

func (r RangMembreAsso) String() string

type Remises

type Remises struct {
	ReducEquipiers Pourcent `json:"reduc_equipiers,omitempty"`
	ReducEnfants   Pourcent `json:"reduc_enfants,omitempty"`
	ReducSpeciale  Euros    `json:"reduc_speciale,omitempty"`
}

Remises donne les champs optionnels concernant le suivi financier d'un participant

func (Remises) Description

func (rem Remises) Description(sepTab string) []string

Description renvoie une liste de chaine au format HTML.

func (Remises) IsActive

func (r Remises) IsActive() bool

IsActive renvoie `true` si au moins une remise est active

func (Remises) Pourcent

func (r Remises) Pourcent() Pourcent

func (*Remises) Scan

func (s *Remises) Scan(src interface{}) error

func (Remises) Value

func (s Remises) Value() (driver.Value, error)

type RepSondage

type RepSondage struct {
	InfosAvantSejour   Satisfaction `json:"infos_avant_sejour"`
	InfosPendantSejour Satisfaction `json:"infos_pendant_sejour"`
	Hebergement        Satisfaction `json:"hebergement"`
	Activites          Satisfaction `json:"activites"`
	Theme              Satisfaction `json:"theme"`
	Nourriture         Satisfaction `json:"nourriture"`
	Hygiene            Satisfaction `json:"hygiene"`
	Ambiance           Satisfaction `json:"ambiance"`
	Ressenti           Satisfaction `json:"ressenti"`
	MessageEnfant      String       `json:"message_enfant"`
	MessageResponsable String       `json:"message_responsable"`
}

type ResponsableLegal

type ResponsableLegal struct {
	Lienid        IdentificationId `json:"lienid,omitempty"`
	Nom           String           `json:"nom,omitempty"`
	Prenom        String           `json:"prenom,omitempty"`
	Sexe          Sexe             `json:"sexe,omitempty"`
	Mail          String           `json:"mail,omitempty"`
	Adresse       String           `json:"adresse,omitempty"`
	CodePostal    String           `json:"code_postal,omitempty"`
	Ville         String           `json:"ville,omitempty"`
	Tels          Tels             `json:"tels,omitempty"`
	DateNaissance Date             `json:"date_naissance,omitempty"`
	Pays          Pays             `json:"pays,omitempty"`
}

func (*ResponsableLegal) Scan

func (s *ResponsableLegal) Scan(src interface{}) error

func (ResponsableLegal) ToPersonne

func (r ResponsableLegal) ToPersonne() Personne

func (ResponsableLegal) Value

func (s ResponsableLegal) Value() (driver.Value, error)

type Role

type Role string

Role dans un camp

const (
	RDirecteur     Role = "_dir"       // Direction
	RAdjoint       Role = "_adjoint"   // Adjoint
	RAnimation     Role = "_anim"      // Animation
	RAideAnimation Role = "_aideanim"  // Aide-animateur
	RChauffeur     Role = "_chauffeur" // Chauffeur
	RIntend        Role = "_intend"    // Intendance
	RBabysiter     Role = "_babysiter" // Baby-sitter
	RMen           Role = "_men"       // Ménage
	RFactotum      Role = "_factotum"  // Factotum
	RInfirm        Role = "_infirm"    // Assistant sanitaire
	RCuis          Role = "_cuis"      // Cuisine
	RLing          Role = "_ling"      // Lingerie
	RAutre         Role = "_autre"     // Autre
)

func (Role) AsRoles

func (r Role) AsRoles() Roles

func (Role) Check

func (r Role) Check() error

func (Role) IsAuPair

func (r Role) IsAuPair() bool

IsAuPair renvoie `true` si le rôle est considéré comme au pair.

func (Role) Sortable

func (r Role) Sortable() string

func (Role) String

func (r Role) String() string

type Roles

type Roles []Role

func (Roles) Check

func (rs Roles) Check() error

func (Roles) Is

func (rs Roles) Is(r Role) bool

Is vérifie si `r` est présent

func (Roles) IsAuPair

func (rs Roles) IsAuPair() bool

IsAuPair vérifie si au moins un des rôles est considéré comme au pair

func (*Roles) Scan

func (rs *Roles) Scan(src interface{}) error

func (Roles) Sortable

func (rs Roles) Sortable() string

func (Roles) String

func (rs Roles) String() string

func (Roles) Value

func (rs Roles) Value() (driver.Value, error)

type Satisfaction

type Satisfaction uint8

Satisfaction est une énumération indiquant le niveau de satisfaction sur le sondage de fin de séjour

const (
	SVide             Satisfaction = iota // -
	SDécevant                             // Décevant
	SMoyen                                // Moyen
	SSatisfaisant                         // Satisfaisant
	STressatisfaisant                     // Très satisfaisant
)

Attention, la valeur compte pour la présentation sur le frontend comme "form-rating"

type SchemaPaiement

type SchemaPaiement string

schemaPaiement peut valoir "acompte" ou "total" Détermine si on demande un acompte pour le camp donné.

const (
	SPAcompte SchemaPaiement = "acompte" // Avec acompte
	SPTotal   SchemaPaiement = "total"   // Paiement direct (sans acompte)
)

type Semaine

type Semaine string

Semaine précise le choix d'une seule semaine de camp

const (
	SComplet Semaine = ""  // Camp complet
	SSe1     Semaine = "1" // Semaine 1
	SSe2     Semaine = "2" // Semaine 2
)

type Set

type Set map[int64]bool // on choisit bool pour l'interaction avec .js

func NewSet

func NewSet() Set

func NewSetFromSlice

func NewSetFromSlice(keys []int64) Set

func (Set) Add

func (s Set) Add(key int64)

func (Set) Has

func (s Set) Has(key int64) bool

func (Set) Keys

func (s Set) Keys() []int64

type Sexe

type Sexe string

"M" ou "F"

const (
	SAucun Sexe = ""  // -
	SHomme Sexe = "M" // Homme
	SFemme Sexe = "F" // Femme
)

func (Sexe) Accord

func (s Sexe) Accord() string

func (Sexe) String

func (s Sexe) String() String

type Sondage

type Sondage struct {
	Id        int64     `json:"id"`
	IdCamp    int64     `json:"id_camp" sql_on_delete:"CASCADE"`
	IdFacture int64     `json:"id_facture" sql_on_delete:"CASCADE"`
	Modified  time.Time `json:"modified"`

	RepSondage
}

Sondage enregistre les retours sur un séjour sql:ADD UNIQUE(id_camp, id_facture)

func DeleteSondageById

func DeleteSondageById(tx DB, id int64) (Sondage, error)

Deletes the Sondage and returns the item

func ScanSondage

func ScanSondage(row *sql.Row) (Sondage, error)

func SelectSondage

func SelectSondage(tx DB, id int64) (Sondage, error)

SelectSondage returns the entry matching id.

func (Sondage) Insert

func (item Sondage) Insert(tx DB) (out Sondage, err error)

Insert Sondage in the database and returns the item with id filled.

func (Sondage) Update

func (item Sondage) Update(tx DB) (out Sondage, err error)

Update Sondage in the database and returns the new version.

type Sondages

type Sondages map[int64]Sondage

func ScanSondages

func ScanSondages(rs *sql.Rows) (Sondages, error)

func SelectAllSondages

func SelectAllSondages(tx DB) (Sondages, error)

func SelectSondages

func SelectSondages(tx DB, ids ...int64) (Sondages, error)

SelectSondages returns the entry matching the given ids.

func SelectSondagesByIdCamps

func SelectSondagesByIdCamps(tx DB, idCamps ...int64) (Sondages, error)

func SelectSondagesByIdFactures

func SelectSondagesByIdFactures(tx DB, idFactures ...int64) (Sondages, error)

func (Sondages) Ids

func (m Sondages) Ids() Ids

type StatutAttente

type StatutAttente uint

définit la place dans la liste d'attente

const (
	Inscrit StatutAttente = iota // Inscrit
	Attente                      // Liste d'attente
	// une place s'est libérée et on attend une confirmation
	AttenteReponse // Attente de confirmation
	// On est (quasi) certain que le participant ne sera
	// pas pris, mais on préfère ne pas le supprimer du dossier
	Refuse // Refusé
)

du plus favorable au moins favorable. L'ordre compte dans la fonction `HintsAttente.Hint`

func (StatutAttente) String

func (sa StatutAttente) String() string

type String

type String string

String is string

func FormatSecuriteSocial

func FormatSecuriteSocial(secu String) String

func (*String) Scan

func (s *String) Scan(src interface{}) error

func (String) Sortable

func (s String) Sortable() string

func (String) String

func (s String) String() string

func (String) ToLower

func (s String) ToLower() string

func (String) ToTitle

func (s String) ToTitle() string

func (String) ToUpper

func (s String) ToUpper() string

func (String) TrimSpace

func (s String) TrimSpace() String

type StringSet

type StringSet map[string]bool

func (StringSet) ToList

func (ss StringSet) ToList() []string

type Structureaide

type Structureaide struct {
	Id              int64  `json:"id"`
	Nom             String `json:"nom"`
	Immatriculation String `json:"immatriculation"`
	Adresse         String `json:"adresse"`
	CodePostal      String `json:"code_postal"`
	Ville           String `json:"ville"`
	Telephone       String `json:"telephone"`
	Info            String `json:"info"`
}

func DeleteStructureaideById

func DeleteStructureaideById(tx DB, id int64) (Structureaide, error)

Deletes the Structureaide and returns the item

func ScanStructureaide

func ScanStructureaide(row *sql.Row) (Structureaide, error)

func SelectStructureaide

func SelectStructureaide(tx DB, id int64) (Structureaide, error)

SelectStructureaide returns the entry matching id.

func (Structureaide) Insert

func (item Structureaide) Insert(tx DB) (out Structureaide, err error)

Insert Structureaide in the database and returns the item with id filled.

func (Structureaide) Update

func (item Structureaide) Update(tx DB) (out Structureaide, err error)

Update Structureaide in the database and returns the new version.

type Structureaides

type Structureaides map[int64]Structureaide

func ScanStructureaides

func ScanStructureaides(rs *sql.Rows) (Structureaides, error)

func SelectAllStructureaides

func SelectAllStructureaides(tx DB) (Structureaides, error)

func SelectStructureaides

func SelectStructureaides(tx DB, ids ...int64) (Structureaides, error)

SelectStructureaides returns the entry matching the given ids.

func (Structureaides) Ids

func (m Structureaides) Ids() Ids

type Table

type Table = []Item

type Taille

type Taille int

func (Taille) Sortable

func (t Taille) Sortable() string

func (Taille) String

func (t Taille) String() string

type TargetDocument

type TargetDocument interface {
	UpdateLinks(links *Links)
}

type Tels

type Tels []string

Tels contient plusieurs numéros

func (*Tels) Scan

func (s *Tels) Scan(src interface{}) error

func (Tels) Sortable

func (t Tels) Sortable() string

func (Tels) String

func (t Tels) String() string

func (Tels) StringHTML

func (t Tels) StringHTML() String

StringLines renvoie une chaine sur plusieurs lignes, au format HTML

func (Tels) StringLines

func (t Tels) StringLines() String

StringLines renvoie une chaine sur plusieurs lignes

func (Tels) Value

func (s Tels) Value() (driver.Value, error)

type Time

type Time time.Time

Time is time.Time

func (Time) MarshalJSON

func (t Time) MarshalJSON() ([]byte, error)

func (*Time) Scan

func (s *Time) Scan(src interface{}) error

func (Time) Sortable

func (d Time) Sortable() string

func (Time) String

func (d Time) String() string

func (Time) Time

func (d Time) Time() time.Time

Time convertit l'instant en l'objet standard.

func (*Time) UnmarshalJSON

func (t *Time) UnmarshalJSON(data []byte) error

func (Time) Value

func (s Time) Value() (driver.Value, error)

type TrajetBus

type TrajetBus struct {
	RendezVous String `json:"rendez_vous"`
	Prix       Euros  `json:"prix"`
}

type User

type User struct {
	Id      int64   `json:"id"`
	Label   String  `json:"label"`
	Mdp     String  `json:"mdp"`
	IsAdmin Bool    `json:"is_admin"`
	Modules Modules `json:"modules"`
}

User représente un utilisateur du client

func DeleteUserById

func DeleteUserById(tx DB, id int64) (User, error)

Deletes the User and returns the item

func ScanUser

func ScanUser(row *sql.Row) (User, error)

func SelectUser

func SelectUser(tx DB, id int64) (User, error)

SelectUser returns the entry matching id.

func (User) Insert

func (item User) Insert(tx DB) (out User, err error)

Insert User in the database and returns the item with id filled.

func (User) Update

func (item User) Update(tx DB) (out User, err error)

Update User in the database and returns the new version.

type Users

type Users map[int64]User

func ScanUsers

func ScanUsers(rs *sql.Rows) (Users, error)

func SelectAllUsers

func SelectAllUsers(tx DB) (Users, error)

func SelectUsers

func SelectUsers(tx DB, ids ...int64) (Users, error)

SelectUsers returns the entry matching the given ids.

func (Users) Ids

func (m Users) Ids() Ids

type Vetement

type Vetement struct {
	Quantite    int    `json:"quantite,omitempty"`
	Description string `json:"description,omitempty"`
	Obligatoire bool   `json:"obligatoire,omitempty"`
}

func (Vetement) AsItem

func (v Vetement) AsItem() Item

Directories

Path Synopsis
Implémente des outils de recherche et de fusion de profil
Implémente des outils de recherche et de fusion de profil

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL