📄Experience Smart Contract
Este contrato almacena todas las Experiencias Laborales y Educativas del usuario.
Estructura
Ejemplo
Semántica de los campos
experienceId: Identificador de la Experiencia. Este valor es asignado correlativamente por el Smart Contract.
user: Dirección del usuario. Propietario del registro.
experienceType: Tipo de la Experiencia (0 = Profesional, 1 = Educativa).
role: Nombre del rol.
description: Describe el rol con más detalles.
company: Nombre de la empresa/institución. Es solo descriptivo; esta experiencia no puede ser verificada si se utiliza este campo. Debe estar vacío si se proporciona una dirección de la empresa o si la experiencia es freelance.
companyAddress: Dirección de la empresa/institución. Debe ser proporcionada por la empresa/institución misma. Debe ser diferente de la dirección del usuario. El propietario de esta dirección puede verificar la Experiencia. Puede estar vacío si la empresa/institución no tiene dirección o si la experiencia es freelance.
startDate: Fecha en que comenzó la Experiencia. Almacenar como Timestamp Unix (segundos desde el 01-01-1970). Campo obligatorio.
endDate: Fecha en que terminó la Experiencia. Almacenar como Timestamp Unix (segundos desde el 01-01-1970). Puede ser 0 si la Experiencia aún no ha terminado. Debe ser 0 si la Experiencia es freelance. Debe ser mayor que startDate.
companyValidation: Si se proporciona una companyAddress, el propietario de esta puede validar la Experiencia.
skills: Habilidades usadas en esta experiencia.
moreInfoLink: Enlace a una metadata opcional. Tipicamente este enlace apuntará a un JSON con diferentes campos para cualquier tipo de metadata (fotos, videos, campos informativos, etc)
Funciones
addExperience: Agrega una nueva experiencia.
updateExperience: Actualiza una experiencia existente.
endExperience: Finaliza una experiencia existente.
deleteExperience: Elimina una experiencia existente.
updateExperienceValidation: Valida una experiencia existente.
Reglas de validación
A continuación se presentan varias reglas que una Experiencia debe seguir para garantizar un estado consistente. Esto se aplica a las operaciones addExperience, updateExperience y endExperience:
La dirección del usuario (user) debe ser diferente de la dirección cero.
El tipo de Experiencia (experienceType) debe ser 0 (Profesional) o 1 (Educativa).
El rol (role) no debe estar vacío.
Debe especificarse un nombre de empresa (company) o una dirección de empresa (companyAddress) para experiencias no freelance (uno u otro, no ambos).
La dirección del usuario debe ser diferente de la dirección de la empresa (companyAddress).
La experiencia freelance (sin nombre de empresa ni dirección de empresa) no debe tener endDate.
StartDate no debe estar vacío.
EndDate debe ser mayor que startDate.
Last updated