<?xml version="1.0" encoding="ISO-8859-1" ?>
<construct>
    <!-- define the module name -->
    <module>service</module>
    <!-- define the module table name -->
    <table>service</table>
    <!-- define the module dependancy(s) -->
    <dependancy/>
    <!-- define the DB cache in seconds -->
    <cache>0</cache>
    <!-- define the default order_by field for SQL queries -->
    <order_by>date_orig</order_by>
    <!-- define the methods -->
    <limit>30</limit>
    <!-- define database indexes -->
    <index>
        <date>site_id,date_orig</date>
        <parent>site_id,parent_id</parent>
        <invoice>site_id,invoice_id</invoice>
        <invoice_item>site_id,invoice_item_id</invoice_item>
        <account>site_id,account_id</account>
        <billing>site_id,account_billing_id</billing>
        <sku>site_id,sku</sku>
        <active>site_id,active</active>
        <type>site_id,type</type>
        <suspend>site_id,suspend_billing</suspend>
        <price>site_id,price</price>
        <price_type>site_id,price_type</price_type>
        <queue>site_id,queue</queue>
        <date_next>site_id,date_next_invoice</date_next>
        <recur_type>site_id,recur_type</recur_type> 
        <server>site_id,host_server_id</server>
        <username>site_id,host_username</username>
        <domain>site_id,domain_name,domain_tld</domain>
        <domain_date_expire>site_id,domain_date_expire</domain_date_expire>
    </index>
    <!-- define the fields -->
    <field>
        <id>
            <type>I8</type>
        </id>
        <site_id>
            <type>I4</type>
        </site_id>
        <date_orig>
            <type>I8</type>
            <convert>date-time</convert>
        </date_orig>
        <date_last>
            <type>I8</type>
            <convert>date-now</convert>
        </date_last>
        <parent_id>
            <type>I8</type>
        </parent_id>
        <invoice_id>
            <type>I8</type>
        </invoice_id>
        <invoice_item_id>
            <type>I8</type>
        </invoice_item_id>
        <account_id>
            <type>I8</type>
            <asso_table>account</asso_table>
            <asso_field>first_name,last_name</asso_field>
            <validate>any</validate>
        </account_id>
        <account_billing_id>
            <type>I8</type>
        </account_billing_id>
        <product_id>
            <type>I8</type>
        </product_id>
        <sku>
            <type>C(32)</type>
            <validate>any</validate>
        </sku>
        <active>
            <type>L</type>
        </active>
        <bind>
            <type>L</type>
        </bind>
        <type>
            <type>C(16)</type>
            <validate>any</validate>
        </type>
        <suspend_billing>
            <type>L</type>
        </suspend_billing>
        <price>
            <type>F</type>
        </price>
        <price_type>
            <type>I4</type>
            <validate>any</validate> 
        </price_type>
        <taxable>
            <type>L</type>
        </taxable>
        <queue>
            <type>C(16)</type>
        </queue>
        <date_last_invoice>
            <type>I8</type>
            <convert>date-time</convert>
        </date_last_invoice>
        <date_next_invoice>
            <type>I8</type>
            <convert>date-time</convert>
        </date_next_invoice>
        <recur_type>
            <type>I4</type>
        </recur_type>
        <recur_schedule>
            <type>I4</type>
        </recur_schedule>
        <recur_weekday>
            <type>I4</type>
        </recur_weekday>
        <recur_week>
            <type>I4</type>
        </recur_week>
        <recur_schedule_change>
            <type>L</type>
        </recur_schedule_change>
        <recur_cancel>
            <type>C(16)</type>
        </recur_cancel>
        <group_grant>
            <type>X2</type>
            <convert>array</convert>
        </group_grant>
        <group_type>
            <type>I4</type>
        </group_type>
        <group_days>
            <type>I4</type>
        </group_days>
        <host_server_id>
            <type>I4</type>
        </host_server_id>
        <host_provision_plugin_data>
            <type>X2</type>
            <convert>array</convert>
        </host_provision_plugin_data>
        <host_ip>
            <type>C(16)</type>
        </host_ip>
        <host_username>
            <type>C(128)</type>
        </host_username>
        <host_password>
            <type>C(128)</type>
        </host_password>
        <domain_name>
            <type>C(128)</type>
        </domain_name>
        <domain_tld>
            <type>C(16)</type>
        </domain_tld>
        <domain_term>
            <type>I4</type>
        </domain_term>
        <domain_type>
            <type>C(16)</type>
        </domain_type>
        <domain_date_expire>
            <type>I8</type>
            <convert>date</convert>
        </domain_date_expire>
        <domain_host_tld_id>
            <type>I4</type>
        </domain_host_tld_id>
        <domain_host_registrar_id>
            <type>I4</type>
        </domain_host_registrar_id>
        <prod_attr>
        	<type>X2</type>
        </prod_attr>
        <prod_attr_cart>
        	<type>X2</type>
        </prod_attr_cart>
        <prod_plugin_name>
            <type>C(128)</type>
        </prod_plugin_name>
        <prod_plugin_data>
            <type>X2</type>
            <convert>array</convert>
        </prod_plugin_data>
        <recur_modify>
        	<type>L</type>
        </recur_modify> 
        <invoice_advance_notified>
        	<type>L</type>
        </invoice_advance_notified>
    </field>
    
    <!-- define all the methods for this class, and the fields they have access to, if applicable. -->
    <method>
        <add>id,site_id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,recur_week,recur_schedule_change,recur_cancel,group_grant,group_type,group_days,host_server_id,host_provision_plugin_data,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing,prod_plugin_name,prod_plugin_data,recur_modify</add>
        <update>id,site_id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,recur_week,recur_schedule_change,recur_cancel,group_grant,group_type,group_days,host_server_id,host_provision_plugin_data,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing,prod_plugin_name,prod_plugin_data,recur_modify</update>
        <delete>id,site_id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,recur_week,recur_schedule_change,recur_cancel,group_grant,group_type,group_days,host_server_id,host_provision_plugin_data,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing,prod_plugin_name,prod_plugin_data,recur_modify</delete>
        <view>id,site_id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,recur_week,recur_schedule_change,recur_cancel,group_grant,group_type,group_days,host_server_id,host_provision_plugin_data,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing,prod_plugin_name,prod_plugin_data,recur_modify</view>
        <search>id,site_id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,recur_week,recur_schedule_change,recur_cancel,group_grant,group_type,group_days,host_server_id,host_provision_plugin_data,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing,prod_plugin_name,prod_plugin_data,recur_modify</search>
        <search_export>id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,host_server_id,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing</search_export>
        <export_excel>id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,host_server_id,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing</export_excel>
        <export_csv>id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,host_server_id,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing</export_csv>
        <export_tab>id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,host_server_id,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing</export_tab>
        <export_xml>id,date_orig,date_last,parent_id,invoice_id,invoice_item_id,account_id,account_billing_id,product_id,sku,active,bind,type,price,price_type,taxable,queue,date_last_invoice,date_next_invoice,recur_type,recur_schedule,recur_weekday,host_server_id,host_ip,host_username,host_password,domain_name,domain_tld,domain_term,domain_type,domain_date_expire,domain_host_tld_id,domain_host_registrar_id,suspend_billing</export_xml>
    </method>
    <!-- define the method triggers -->
    <trigger>0</trigger>
</construct>
