// Copyright (c) 2025 ObjectStack. Licensed under the Apache-2.0 license.

/**
 * Auto-generated by 'os i18n extract' for locale 'es-ES'.
 * Edit translations in place; re-run extract (with --merge) to fill new gaps.
 * Do not hand-edit the structure — only the leaf string values.
 */

import type { TranslationData } from '@objectstack/spec/system';

export const esESObjects: NonNullable<TranslationData['objects']> = {
  sys_record_share: {
    label: "Compartición de registro",
    pluralLabel: "Comparticiones de registro",
    description: "Concesión de compartición por registro; amplía OWD con acceso explícito.",
    fields: {
      id: {
        label: "ID de compartición"
      },
      object_name: {
        label: "Objeto",
        help: "Nombre corto del objeto del registro compartido."
      },
      record_id: {
        label: "Registro",
        help: "Clave primaria del registro compartido dentro de object_name."
      },
      recipient_type: {
        label: "Tipo de destinatario",
        help: "Tipo de principal que posee la concesión.",
        options: {
          user: "Usuario",
          group: "Grupo",
          role: "Rol",
          role_and_subordinates: "Rol y subordinados",
          guest: "Invitado"
        }
      },
      recipient_id: {
        label: "Destinatario",
        help: "ID del usuario/grupo/rol que recibe acceso."
      },
      access_level: {
        label: "Nivel de acceso",
        help: "Lo que puede hacer el destinatario: read | edit | full (transfer/share/delete).",
        options: {
          read: "Leer",
          edit: "Editar",
          full: "Total"
        }
      },
      source: {
        label: "Origen",
        help: "Motivo por el que existe esta concesión; lo utiliza el evaluador de reglas para reconciliar.",
        options: {
          manual: "Manual",
          rule: "Regla",
          team: "Equipo",
          inherited: "Heredado"
        }
      },
      source_id: {
        label: "ID de origen",
        help: "Nombre de la regla / ID del equipo cuando source != manual."
      },
      granted_by: {
        label: "Concedido por",
        help: "Usuario que creó la concesión (solo manual)."
      },
      reason: {
        label: "Motivo",
        help: "Explicación opcional en texto libre que se muestra al destinatario."
      },
      created_at: {
        label: "Creado el"
      },
      updated_at: {
        label: "Actualizado el"
      }
    },
    _views: {
      granted_to_me: {
        label: "Concedidos a mí"
      },
      granted_by_me: {
        label: "Concedidos por mí"
      },
      by_object: {
        label: "Por objeto"
      },
      manual_grants: {
        label: "Concesiones manuales"
      },
      rule_grants: {
        label: "Concesiones por regla"
      },
      all_shares: {
        label: "Todas"
      }
    }
  },
  sys_sharing_rule: {
    label: "Regla de compartición",
    pluralLabel: "Reglas de compartición",
    description: "Regla de compartición declarativa que materializa automáticamente concesiones de sys_record_share. Se define mediante defineSharingRule() en código o con el generador de criterios de Studio.",
    fields: {
      id: {
        label: "ID de regla"
      },
      organization_id: {
        label: "Organización",
        help: "Tenant que posee esta regla; null = global."
      },
      name: {
        label: "Nombre",
        help: "Nombre de regla snake_case único."
      },
      label: {
        label: "Nombre visible"
      },
      description: {
        label: "Descripción"
      },
      object_name: {
        label: "Objeto",
        help: "Nombre corto del objeto (p. ej. opportunity, account)."
      },
      criteria_json: {
        label: "Criterios (JSON de FilterCondition)",
        help: "FilterCondition JSON comparado con los registros de object_name. Vacío = coincide con todos."
      },
      recipient_type: {
        label: "Tipo de destinatario",
        help: "Tipo de principal que recibe acceso; se expande a concesiones de usuario durante la evaluación. `department` recorre el árbol parent_department_id; `team` es plano (better-auth).",
        options: {
          user: "Usuario",
          team: "Equipo",
          department: "Departamento",
          role: "Rol",
          queue: "Cola"
        }
      },
      recipient_id: {
        label: "Destinatario",
        help: "ID de departamento / ID de equipo / nombre del rol / nombre de la cola / ID del usuario según recipient_type."
      },
      access_level: {
        label: "Nivel de acceso",
        options: {
          read: "Leer",
          edit: "Editar",
          full: "Total"
        }
      },
      active: {
        label: "Activo",
        help: "Solo las reglas activas participan en la evaluación del ciclo de vida."
      },
      created_at: {
        label: "Creado el"
      },
      updated_at: {
        label: "Actualizado el"
      }
    },
    _views: {
      active: {
        label: "Activo"
      },
      inactive: {
        label: "Inactivo"
      },
      by_object: {
        label: "Por objeto"
      },
      all_rules: {
        label: "Todas"
      }
    }
  },
  sys_share_link: {
    label: "Enlace de uso compartido",
    pluralLabel: "Enlaces de uso compartido",
    description: "Token de capacidad opaco que concede acceso a un único registro. Uso compartido mediante enlace público al estilo de Notion/Figma.",
    fields: {
      id: {
        label: "ID del enlace"
      },
      token: {
        label: "Token",
        help: "Token aleatorio opaco seguro para URL (≥ 22 caracteres). El único secreto de esta fila."
      },
      object_name: {
        label: "Objeto",
        help: "Nombre corto del objeto del registro compartido (p. ej. ai_conversation, contracts_contract)"
      },
      record_id: {
        label: "Registro",
        help: "Clave principal del registro compartido dentro de object_name"
      },
      permission: {
        label: "Permiso",
        help: "Lo que el titular del enlace puede hacer con el registro",
        options: {
          view: "Ver",
          comment: "Comentar",
          edit: "Editar"
        }
      },
      audience: {
        label: "Audiencia",
        help: "Capa de control aplicada por encima de la verificación del token",
        options: {
          public: "Público (indexable)",
          link_only: "Cualquier persona con el enlace",
          signed_in: "Usuarios con sesión iniciada",
          email: "Correos específicos"
        }
      },
      expires_at: {
        label: "Caduca el",
        help: "Cuando se establece, resolveToken devuelve null después de esta marca de tiempo"
      },
      email_allowlist: {
        label: "Lista de correos permitidos",
        help: "Direcciones en minúsculas que se comprueban cuando audience=email"
      },
      password_hash: {
        label: "Hash de contraseña",
        help: "Hash Argon2/bcrypt. Cuando se establece, la interfaz solicita una contraseña antes de mostrar el contenido."
      },
      redact_fields: {
        label: "Campos ocultos por enlace",
        help: "Campos adicionales que se eliminan de la respuesta, además del conjunto predeterminado del objeto"
      },
      label: {
        label: "Etiqueta",
        help: "Texto libre que se muestra en el cuadro de diálogo de uso compartido (p. ej. \"ACME Q3 contract\")"
      },
      revoked_at: {
        label: "Revocado el",
        help: "Cuando se establece, el enlace queda deshabilitado permanentemente"
      },
      created_by: {
        label: "Creado por",
        help: "Emisor del enlace"
      },
      created_at: {
        label: "Creado el"
      },
      last_used_at: {
        label: "Último uso el",
        help: "Lo registra resolveToken; el panel lo usa para resaltar los enlaces activos"
      },
      use_count: {
        label: "Número de usos",
        help: "Lo incrementa resolveToken en cada resolución correcta"
      }
    },
    _views: {
      active_links: {
        label: "Activos"
      },
      by_me: {
        label: "Creados por mí"
      },
      revoked: {
        label: "Revocados"
      },
      all_links: {
        label: "Todos"
      }
    }
  }
};
