# ============================================================
# SEPE Tresipunt Setup Configuration
# Plugin: block_tresipuntsepe
# ============================================================

plugin: block_tresipuntsepe
version: 2024102400

# ------------------------------------------------------------
# 1. Custom Fields - Courses
# ------------------------------------------------------------
course_custom_fields:
  category:
    name: "Acción Formativa"
  fields:
    - name: "Curso de SEPE"
      shortname: "sepe3"
      description: "Indica si el curso pertenece al programa SEPE"
      type: "checkbox"
      config:
        defaultvalue: "0"
        required: 0
        locked: 0
        visibility: 2
    - name: "Código Acción"
      shortname: "codigo_accion"
      description: "Código único de la acción formativa SEPE"
      type: "text"
      config:
        defaultvalue: ""
        displaysize: 50
        maxlength: 50
        uniquevalues: 1
        ispassword: 0
        required: 0
        locked: 0
        visibility: 2

# ------------------------------------------------------------
# 2. Custom Fields - Users
# ------------------------------------------------------------
user_custom_fields:
  category:
    name: "SEPE"
  fields:
    - name: "Documento SEPE"
      shortname: "sepe_documento"
      datatype: "text"
      description: |
        <p>Dato compuesto a su vez de tres datos: Tipo de documento, Número de documento y Letra del documento.</p>
        <p>Dato que puede tomar los valores: D, E, U, G, W y H.</p>
        <ul>
        <li>D: Para identificadores del tipo Documento Nacional de Identidad (DNI).</li>
        <li>E: Para identificadores del tipo Número de Identificador de Extranjero (NIE).</li>
        <li>U: Para identificadores del tipo Identificación convencional para ciudadanos del Espacio Económico Europeo que no están en posesión del NIE.</li>
        <li>W: Para identificadores del tipo Identificación convencional para ciudadanos que no pertenecen al Espacio Económico Europeo y que no están en posesión del NIE.</li>
        <li>G: Identificación para Personas privadas de libertad, a los que la ley ampara el derecho a la no identificación, o para aquellos ciudadanos a los que es difícil identificar en el momento de su ingreso en prisión.</li>
        <li>H: Para identificadores del tipo Identificación convencional de Personas que no hayan podido ser adecuadas en el proceso de adecuación de datos, por ser duplicadas o similar.</li>
        </ul>
        <p>Dato alfanumérico de 10 caracteres.</p>
        <p>Cálculo:</p>
        <ol>
        <li>
        M = mod 23 (número de documento), siendo número de documento:
        <ul>
        <li>Para DNI: N8</li>
        <li>Para NIE: Si el NIE comienza por X, 0+N7</li>
        <li>Para NIE: Si el NIE comienza por Y, 1+N7</li>
        <li>Para NIE: Si el NIE comienza por Z, 2+N7</li>
        <li>Para G: N10
        </ul>
        </li>
        <li>
        N = M + 1 (Tabla de correspondencia):
        <ul>
        <li>N: 1 2 3 4 5 6 7 8 9 10 11 12 13 → NIF: T R W A G M Y F P D X B M</li>
        <li>N: 14 15 16 17 18 19 20 21 22 23 → NIF: J Z S Q M H L C K E</li>
        </ul>
        </li>
        </ol>
      config:
        required: 0
        locked: 1
        forceunique: 1
        signup: 0
        visible: 3
        param1: 10
        param2: 10

# ------------------------------------------------------------
# 3. Roles Definition
# ------------------------------------------------------------
roles:
  tresipunt_sepe_ws:
    name: "Tresipunt SEPE WS"
    shortname: "tresipunt_sepe_ws"
    description: "Rol para el seguimiento SOAP (WS) de las Acciones Formativas del SEPE"
    archetype: "coursecreator"
    capabilities:
      - moodle/course:create
      - moodle/course:delete
      - block/tresipuntsepe:addinstance
      - block/tresipuntsepe:manage
      - block/tresipuntsepe:view
      - webservice/rest:use

  tresipunt_sepe:
    name: "Tresipunt SEPE Administrador"
    shortname: "tresipunt_sepe"
    description: "Rol para la administración de las Acciones Formativas del SEPE"
    archetype: "coursecreator"
    capabilities:
      - moodle/course:create
      - moodle/course:delete
      - block/tresipuntsepe:addinstance
      - block/tresipuntsepe:manage
      - block/tresipuntsepe:view

  tresipunt_sepe_teacher:
    name: "Tresipunt SEPE Profesor"
    shortname: "tresipunt_sepe_teacher"
    description: "Rol para docentes de cursos SEPE"
    archetype: "editingteacher"

  tresipunt_sepe_student:
    name: "Tresipunt SEPE Alumno"
    shortname: "tresipunt_sepe_student"
    description: "Rol para alumnos de cursos SEPE"
    archetype: "student"

# ------------------------------------------------------------
# 4. Users Creation
# ------------------------------------------------------------
users:
  - username: "tresipunt_ws_sepe"
    firstname: "SEPE"
    lastname: "WS"
    email: "tresipunt_sepe_ws@tresipunt.comx"
    description: "Usuario del Web Service para la sincronización con SEPE"
    role: "tresipunt_sepe_ws"

  - username: "tresipunt_admin_sepe"
    firstname: "SEPE"
    lastname: "Admin"
    email: "tresipunt_sepe@tresipunt.comx"
    description: "Usuario con perfil de administrador con permisos para publicar contenidos en SEPE"
    role: "tresipunt_sepe"

  - username: "tresipunt_teacher_sepe"
    firstname: "SEPE"
    lastname: "Profesor"
    email: "tresipunt_sepe_teacher@tresipunt.comx"
    description: "Usuario SEPE con perfil de profesor"
    role: "tresipunt_sepe_teacher"

  - username: "tresipunt_student_sepe"
    firstname: "SEPE"
    lastname: "Alumno"
    email: "tresipunt_sepe_student@tresipunt.comx"
    description: "Usuario SEPE con perfil de alumno"
    role: "tresipunt_sepe_student"

# ------------------------------------------------------------
# 5. Web Service Configuration
# ------------------------------------------------------------
webservice:
  enable_webservices: true
  protocols: ["rest"]
  enable_documentation: true

  service:
    name: "Tresipunt SEPE WS"
    component: "block_tresipuntsepe"

  token:
    user: "tresipunt_ws_sepe"
    type: 0
    validuntil: null
    iprestriction: null
