columns:
  age_id:
    type: bigint
  age_jours:
    type: numeric(9,0)
    default: "0"
  anciennete_annee_id:
    type: bigint
    default: "0"
    comment: "Ancienneté dans l''établissement en années"
  anciennete_reprise_annee_id:
    type: bigint
    default: "0"
    comment: "Ancienneté reprise dans l''établissement en années"
  anciennete_fp_annee_id:
    type: bigint
    default: "0"
    comment: Ancienneté dans la fonction publique en années
  anciennete_fp_mois:
    type: bigint
    default: "0"
    comment: Ancienneté dans la fonction publique en mois
  anciennete_fph_annee_id:
    type: bigint
    default: "0"
    comment: Ancienneté dans la fonction publique hospitalière en années
  anciennete_fph_mois:
    type: bigint
    default: "0"
    comment: Ancienneté dans la fonction publique hospitalière en mois
  anciennete_grade_annee_id:
    type: bigint
    default: "0"
    comment: Ancienneté dans le grade en années
  anciennete_grade_mois:
    type: bigint
    default: "0"
    comment: Ancienneté dans le grade en mois
  anciennete_jours:
    type: numeric
    default: "0"
    comment: "Ancienneté dans l''établissement en jours"
  anciennete_reprise_jours:
    type: numeric
    default: "0"
    comment: "Ancienneté reprise dans l''établissement en jours"
  anciennete_mois:
    type: bigint
    default: "0"
    comment: "Ancienneté dans l''établissement en mois"
  anciennete_reprise_mois:
    type: bigint
    default: "0"
    comment: "Ancienneté reprise dans l''établissement en mois"
  code_original:
    type: text
  contrat_id:
    type: bigint
  date_debut:
    type: date
    comment: |
      Date de début du contrat sur le mois.
      Correspond au 1er du mois si contrat en cours.
  date_fin:
    type: date
    comment: |
      Date de fin du contrat sur le mois.
      Correspond au dernier jour du mois si contrat en cours.
  effectif_permanent:
    type: numeric
    default: "0"
    comment: |
      Toujours calculé depuis le 1er janvier.
      Pour savoir si un salarié fait partie de l''effectif permanent, il faut regarder cet indicateur sur le dernier mois de la période analysée.
      0 = non
      1 = oui
  equivalent_temps_plein:
    type: numeric
    comment: "Nombre d''heures théorique du contrat / Nombre d''heures travaillées dans l''établissement (basé sur t_etablissements.base_calcul_etp)"
  est_hors_periode:
    type: character(1)
    default: "'0'::bpchar"
    comment: |
      Ce champ aurait pu s''appeler "paie_hors_periode_de_contrat".
      0 = cas standard : un contrat est présent sur ce mois
      1 = cas particulier : aucun contrat ne couvre ce mois. Un lien est effectué avec le dernier contrat. Cela permet par ex. d''associer un rappel de paye effectué a posteriori hors contrat.
  etablissement_id:
    type: bigint
    comment: Le salarié peut être affecté à plusieurs établissements de manière simultanée ou séquentielle tout en ayant un seul et même contrat de travail.
  fictif:
    type: character(1)
    default: "0"
  mois_activite:
    type: numeric(6,0)
  nombre_debut_contrat:
    type: numeric(5,0)
    comment: |
      Nombre de début de contrat.
      0 si contrat ne commence pas sur le mois ou hors période = 1
      1 si contrat commencé sur le mois
  nombre_departs:
    type: numeric(5,0)
    default: "0"
    comment: |
      Dernier contrat avant sortie de l''établissement (basé sur p_salaries.date_sortie_ets) ?
      0 = non
      1 = oui
  nombre_entrees:
    type: numeric
    default: "0"
    comment: |
      Premier contrat à l''entrée de l''établissement (basé sur p_salaries.date_entree_ets) ?
      0 = non
      1 = oui
  nombre_fin_contrat:
    type: numeric(5,0)
    comment: |
      Nombre de fin de contrat.
      0 si contrat ne se termine pas sur le mois ou hors période = 1
      1 si contrat terminé sur le mois
  nombre_heures:
    type: numeric
  nombre_transformation_cdi:
    type: numeric(5,0)
    comment: |
      Nombre de transformation d''un CDD (ou autre hors CDI) en CDI.
      0 si pas de transformation
      1 si transformation
  oid:
    type: bigint
    not_null: NOT NULL
    default: "nextval('s_contrats_mois'::regclass)"
  pole_id:
    type: bigint
    default: "0"
  population_id:
    type: 'bigint[]'
  present_debut_mois:
    type: numeric
    default: "0"
    comment: |
      Le contrat couvre-t-il le 1er du mois ?
      0 = non
      1 = oui
  present_fin_mois:
    type: numeric(5,0)
    default: "0"
    comment: |
      Le contrat couvre-t-il le dernier jour du mois ?
      0 = non
      1 = oui
  profil_id:
    type: bigint
  ratio_temps_travail:
    type: numeric
  salarie_id:
    type: bigint
constraints:
  p_contrats_mois_pkey:
    type: PRIMARY KEY
    column: oid
indexes:
  i_contrats_mois_1:
    column: contrat_id
    method: btree
  i_contrats_mois_2:
    column: date_fin
    method: btree
  i_contrats_mois_4:
    column: age_id
    method: btree