export type DomainCapabilities = {
    lock: boolean;
    auth_code: boolean;
    nameservers: boolean;
    contacts: boolean;
    privacy: boolean;
    dns_zone: boolean;
    dnssec: boolean;
    glue: boolean;
    hosted_dns: boolean;
    admin_handle: boolean;
    tech_handle: boolean;
    billing_handle: boolean;
    restore?: boolean;
    soft_restore?: boolean;
    trade?: boolean;
    release?: boolean;
    delete?: boolean;
    email_forwarding?: boolean;
    suggestions?: boolean;
    premium?: boolean;
    idn?: boolean;
    transfer_sync?: boolean;
    remote_contacts?: boolean;
    claims?: boolean;
};

export type DomainShowModel = {
    id: number;
    name: string;
    status: string;
    locked: boolean;
    privacy_enabled: boolean;
    dnssec_enabled: boolean;
    expires_at: string | null;
    registered_at: string | null;
    nameservers: string[];
    registrar: string | null;
    last_error: string | null;
    provision_status?: string | null;
    can_retry?: boolean;
    contact_sync_status?: string | null;
    contact_sync_error?: string | null;
    verification_status?: string | null;
    verification_due_at?: string | null;
    roles: {
        admin_profile_id: number | null;
        tech_profile_id: number | null;
        billing_profile_id: number | null;
        admin_handle: string | null;
        tech_handle: string | null;
        billing_handle: string | null;
    };
};

export type HolderModel = {
    id: number;
    label: string;
    first_name: string;
    last_name: string;
    company_name: string | null;
    email: string;
    phone: string | null;
    address_line_1: string;
    address_line_2: string | null;
    city: string;
    state: string | null;
    postal_code: string;
    country: string;
    domains_count: number;
};

export type DnsRecordRow = {
    name: string;
    type: string;
    value: string;
    ttl: number;
    prio: number | null;
};
