<?php

namespace GriffinForms\Includes\Pipelines\Accounts;

final class Contract
{
    public const INTEGRATION_ID = 'wordpress_accounts';
    public const SUBMISSION_META_KEY = 'accounts';
    public const STATE_VERSION = 1;

    public const JOB_TYPE_PROCESS = 'wordpress_account_process';

    public const STATUS_READY_FOR_QUEUE = 'ready_for_queue';
    public const STATUS_QUEUED = 'queued';
    public const STATUS_PENDING_ADMIN_ACTIVATION = 'pending_admin_activation';
    public const STATUS_MANUAL_REVIEW_ONLY = 'manual_review_only';
    public const STATUS_BLOCKED = 'blocked';
    public const STATUS_PROCESSING = 'processing';
    public const STATUS_COMPLETED = 'completed';
    public const STATUS_FAILED = 'failed';

    public const LOG_CATEGORY = 'Integration (wordpress_accounts)';

    public const ENABLE_HANDLER_FILTER = 'griffinforms_enable_wordpress_accounts_pipeline';
    public const ENABLE_QUEUE_FILTER = 'griffinforms_enable_wordpress_accounts_queue';

    public const PASSWORD_VAULT_KEY_PREFIX = 'gf_accounts_pwd_';
    public const PASSWORD_VAULT_TTL = 900;
    public const PROFILE_IMAGE_ATTACHMENT_META_KEY = 'griffinforms_profile_image_attachment_id';
    public const PROFILE_IMAGE_URL_META_KEY = 'griffinforms_profile_image_url';
    public const USER_META_ORIGIN_FORM_ID = 'griffinforms_registration_origin_form_id';
    public const USER_META_ORIGIN_SUBMISSION_ID = 'griffinforms_registration_origin_submission_id';
    public const USER_META_ORIGIN_ACTION_ID = 'griffinforms_registration_origin_action_id';
    public const USER_META_LAST_FORM_ID = 'griffinforms_registration_last_form_id';
    public const USER_META_LAST_SUBMISSION_ID = 'griffinforms_registration_last_submission_id';
    public const USER_META_LAST_ACTION_ID = 'griffinforms_registration_last_action_id';

    public const ACTION_CREATE_NOW = 'create_now';
    public const ACTION_ACTIVATE_PENDING = 'activate_pending';
    public const ACTION_RETRY_FAILED = 'retry_failed';
    public const ACTION_SEND_CONFIRMATION_NOW = 'send_confirmation_now';
    public const ACTION_MARK_NO_ACTION = 'mark_no_action';
}
