<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<database name="fowoco_docs" schema="public" type="PostgreSQL - 17.10">
   <tables>
      <table name="approval_request" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="approval_request_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="task_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="task_id" foreignKey="fk_approval_request_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_approval_request_requester_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
            <parent column="company_id" foreignKey="fk_approval_request_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="target_task_version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="target_content_revision" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="approved_task_version" nullable="true" remarks="" size="19" type="int8" typeCode="-5"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="target_fingerprint" nullable="false" remarks="" size="64" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="status" nullable="false" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="ai_snapshot_json" nullable="true" remarks="" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="hr_snapshot_json" nullable="false" remarks="" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="10" name="changed_fields_json" nullable="false" remarks="" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="11" name="source_versions_json" nullable="false" remarks="" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="12" name="requested_by" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_approval_request_requester_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="6" id="13" name="requested_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="14" name="decided_by" nullable="true" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_approval_request_decider_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="6" id="15" name="decided_at" nullable="true" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="16" name="decision_reason" nullable="true" remarks="" size="500" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="17" name="invalidated_at" nullable="true" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="18" name="invalidation_reason" nullable="true" remarks="" size="500" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="19" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="20" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="21" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <primaryKey column="approval_request_id" sequenceNumberInPK="1"/>
         <index name="pk_approval_request" unique="true">
            <column ascending="true" name="approval_request_id"/>
         </index>
         <index name="idx_approval_request_task_status" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="status"/>
            <column ascending="true" name="requested_at"/>
         </index>
         <index name="uq_approval_request_id_task_company" unique="true">
            <column ascending="true" name="approval_request_id"/>
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="company_id"/>
         </index>
         <checkConstraint constraint="(((status)::text &lt;&gt; 'APPROVED'::text) OR (approved_task_version IS NOT NULL))" name="ck_approval_request_approved_task_version"/>
         <checkConstraint constraint="((approved_task_version IS NULL) OR (approved_task_version &gt;= target_task_version))" name="ck_approval_request_approved_version"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM changed_fields_json)) &gt; 0)" name="ck_approval_request_changed_fields_not_blank"/>
         <checkConstraint constraint="((((status)::text = 'PENDING'::text) AND (decided_by IS NULL) AND (decided_at IS NULL) AND (approved_task_version IS NULL) AND (invalidated_at IS NULL)) OR (((status)::text = ANY ((ARRAY['APPROVED'::character varying, 'REJECTED'::character varying])::text[])) AND (decided_by IS NOT NULL) AND (decided_at IS NOT NULL) AND (invalidated_at IS NULL)) OR (((status)::text = 'INVALIDATED'::text) AND (invalidated_at IS NOT NULL)))" name="ck_approval_request_decision"/>
         <checkConstraint constraint="(char_length((target_fingerprint)::text) = 64)" name="ck_approval_request_fingerprint_length"/>
         <checkConstraint constraint="((target_fingerprint)::text = lower((target_fingerprint)::text))" name="ck_approval_request_fingerprint_lowercase"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM hr_snapshot_json)) &gt; 0)" name="ck_approval_request_hr_snapshot_not_blank"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM source_versions_json)) &gt; 0)" name="ck_approval_request_source_versions_not_blank"/>
         <checkConstraint constraint="((status)::text = ANY ((ARRAY['PENDING'::character varying, 'APPROVED'::character varying, 'REJECTED'::character varying, 'INVALIDATED'::character varying])::text[]))" name="ck_approval_request_status"/>
         <checkConstraint constraint="(target_content_revision &gt;= 0)" name="ck_approval_request_target_revision"/>
         <checkConstraint constraint="(target_task_version &gt;= 0)" name="ck_approval_request_target_version"/>
         <checkConstraint constraint="(updated_at &gt;= created_at)" name="ck_approval_request_updated_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_approval_request_version"/>
      </table>
      <table name="audit_event" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="audit_event_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_audit_event_company" implied="false" onDeleteCascade="false" schema="public" table="company"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="actor_type" nullable="false" remarks="" size="30" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="actor_id" nullable="true" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="user_role" nullable="true" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="action" nullable="false" remarks="" size="60" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="target_type" nullable="false" remarks="" size="40" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="target_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="request_id" nullable="false" remarks="" size="128" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="trace_id" nullable="true" remarks="" size="64" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="10" name="event_version" nullable="false" remarks="" size="30" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="11" name="change_summary" nullable="false" remarks="" size="500" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="12" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="audit_event_id" sequenceNumberInPK="1"/>
         <index name="pk_audit_event" unique="true">
            <column ascending="true" name="audit_event_id"/>
         </index>
         <index name="idx_audit_event_actor_time" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="actor_type"/>
            <column ascending="true" name="actor_id"/>
            <column ascending="true" name="created_at"/>
         </index>
         <index name="idx_audit_event_company_time" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="created_at"/>
         </index>
         <index name="idx_audit_event_target_time" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="target_type"/>
            <column ascending="true" name="target_id"/>
            <column ascending="true" name="created_at"/>
         </index>
         <index name="idx_audit_event_trace" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="trace_id"/>
         </index>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM action)) &gt; 0)" name="ck_audit_event_action_not_blank"/>
         <checkConstraint constraint="((actor_type)::text = ANY ((ARRAY['HR_USER'::character varying, 'WORKER_LINK'::character varying, 'AI_AGENT'::character varying, 'SYSTEM_RULE'::character varying])::text[]))" name="ck_audit_event_actor_type"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM request_id)) &gt; 0)" name="ck_audit_event_request_not_blank"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM change_summary)) &gt; 0)" name="ck_audit_event_summary_not_blank"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM target_type)) &gt; 0)" name="ck_audit_event_target_type_not_blank"/>
         <checkConstraint constraint="((user_role IS NULL) OR ((user_role)::text = ANY ((ARRAY['ADMIN'::character varying, 'HR'::character varying, 'VIEWER'::character varying])::text[])))" name="ck_audit_event_user_role"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM event_version)) &gt; 0)" name="ck_audit_event_version_not_blank"/>
      </table>
      <table name="company" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="company_id" foreignKey="fk_audit_event_company" implied="false" onDeleteCascade="false" schema="public" table="audit_event"/>
            <child column="company_id" foreignKey="fk_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
            <child column="company_id" foreignKey="fk_user_account_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
            <child column="company_id" foreignKey="fk_worker_company" implied="false" onDeleteCascade="false" schema="public" table="worker"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="name" nullable="false" remarks="" size="120" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="status" nullable="false" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="3" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="4" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="5" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <primaryKey column="company_id" sequenceNumberInPK="1"/>
         <index name="pk_company" unique="true">
            <column ascending="true" name="company_id"/>
         </index>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM name)) &gt; 0)" name="ck_company_name_not_blank"/>
         <checkConstraint constraint="((status)::text = ANY ((ARRAY['ACTIVE'::character varying, 'SUSPENDED'::character varying, 'DISABLED'::character varying])::text[]))" name="ck_company_status"/>
         <checkConstraint constraint="(updated_at &gt;= created_at)" name="ck_company_updated_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_company_version"/>
      </table>
      <table name="external_submission" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="external_submission_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="task_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="task_id" foreignKey="fk_external_submission_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_external_submission_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
            <parent column="company_id" foreignKey="fk_external_submission_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="destination" nullable="false" remarks="" size="160" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="safe_reference" nullable="false" remarks="" size="300" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="submitted_by" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_external_submission_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="6" id="6" name="submitted_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="7" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="external_submission_id" sequenceNumberInPK="1"/>
         <index name="pk_external_submission" unique="true">
            <column ascending="true" name="external_submission_id"/>
         </index>
         <index name="idx_external_submission_task" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="submitted_at"/>
         </index>
         <index name="uq_external_submission_id_task_company" unique="true">
            <column ascending="true" name="external_submission_id"/>
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="company_id"/>
         </index>
         <checkConstraint constraint="(created_at &gt;= submitted_at)" name="ck_external_submission_created_at"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM destination)) &gt; 0)" name="ck_external_submission_destination_not_blank"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM safe_reference)) &gt; 0)" name="ck_external_submission_reference_not_blank"/>
      </table>
      <table name="flyway_schema_history" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="installed_rank" nullable="false" remarks="" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="version" nullable="true" remarks="" size="50" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="description" nullable="false" remarks="" size="200" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="type" nullable="false" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="script" nullable="false" remarks="" size="1000" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="checksum" nullable="true" remarks="" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="installed_by" nullable="false" remarks="" size="100" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="now()" digits="6" id="7" name="installed_on" nullable="false" remarks="" size="29" type="timestamp" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="execution_time" nullable="false" remarks="" size="10" type="int4" typeCode="4"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="success" nullable="false" remarks="" size="1" type="bool" typeCode="-7"/>
         <primaryKey column="installed_rank" sequenceNumberInPK="1"/>
         <index name="flyway_schema_history_pk" unique="true">
            <column ascending="true" name="installed_rank"/>
         </index>
         <index name="flyway_schema_history_s_idx" unique="false">
            <column ascending="true" name="success"/>
         </index>
      </table>
      <table name="refresh_token" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="refresh_token_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="replaced_by_token_id" foreignKey="fk_refresh_token_replacement_family" implied="false" onDeleteCascade="false" schema="public" table="refresh_token"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="user_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_refresh_token_user_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_refresh_token_user_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="token_family_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="token_family_id" foreignKey="fk_refresh_token_replacement_family" implied="false" onDeleteCascade="false" schema="public" table="refresh_token"/>
            <parent column="token_family_id" foreignKey="fk_refresh_token_replacement_family" implied="false" onDeleteCascade="false" schema="public" table="refresh_token"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="token_hash" nullable="false" remarks="" size="64" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="5" name="expires_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="6" name="used_at" nullable="true" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="7" name="revoked_at" nullable="true" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="replaced_by_token_id" nullable="true" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="refresh_token_id" foreignKey="fk_refresh_token_replacement_family" implied="false" onDeleteCascade="false" schema="public" table="refresh_token"/>
         </column>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="9" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="10" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="11" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <primaryKey column="refresh_token_id" sequenceNumberInPK="1"/>
         <index name="pk_refresh_token" unique="true">
            <column ascending="true" name="refresh_token_id"/>
         </index>
         <index name="idx_refresh_token_company_user" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="user_id"/>
         </index>
         <index name="idx_refresh_token_expires_at" unique="false">
            <column ascending="true" name="expires_at"/>
         </index>
         <index name="idx_refresh_token_family_revoked" unique="false">
            <column ascending="true" name="token_family_id"/>
            <column ascending="true" name="revoked_at"/>
         </index>
         <index name="uq_refresh_token_hash" unique="true">
            <column ascending="true" name="token_hash"/>
         </index>
         <index name="uq_refresh_token_id_family" unique="true">
            <column ascending="true" name="refresh_token_id"/>
            <column ascending="true" name="token_family_id"/>
         </index>
         <index name="uq_refresh_token_replaced_by" unique="true">
            <column ascending="true" name="replaced_by_token_id"/>
         </index>
         <checkConstraint constraint="(expires_at &gt; created_at)" name="ck_refresh_token_expiry"/>
         <checkConstraint constraint="(char_length((token_hash)::text) = 64)" name="ck_refresh_token_hash_length"/>
         <checkConstraint constraint="((token_hash)::text = lower((token_hash)::text))" name="ck_refresh_token_hash_lowercase"/>
         <checkConstraint constraint="((replaced_by_token_id IS NULL) OR (replaced_by_token_id &lt;&gt; refresh_token_id))" name="ck_refresh_token_replacement"/>
         <checkConstraint constraint="((replaced_by_token_id IS NULL) OR (used_at IS NOT NULL))" name="ck_refresh_token_replacement_used"/>
         <checkConstraint constraint="((revoked_at IS NULL) OR (revoked_at &gt;= created_at))" name="ck_refresh_token_revoked_at"/>
         <checkConstraint constraint="((updated_at &gt;= created_at) AND ((used_at IS NULL) OR (updated_at &gt;= used_at)) AND ((revoked_at IS NULL) OR (updated_at &gt;= revoked_at)))" name="ck_refresh_token_updated_at"/>
         <checkConstraint constraint="((used_at IS NULL) OR (used_at &gt;= created_at))" name="ck_refresh_token_used_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_refresh_token_version"/>
      </table>
      <table name="task" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="task_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="task_id" foreignKey="fk_approval_request_task_company" implied="false" onDeleteCascade="false" schema="public" table="approval_request"/>
            <child column="task_id" foreignKey="fk_external_submission_task_company" implied="false" onDeleteCascade="false" schema="public" table="external_submission"/>
            <child column="task_id" foreignKey="fk_task_checklist_task_company" implied="false" onDeleteCascade="true" schema="public" table="task_checklist_item"/>
            <child column="task_id" foreignKey="fk_task_evidence_task_company" implied="false" onDeleteCascade="false" schema="public" table="task_evidence"/>
            <child column="task_id" foreignKey="fk_task_transition_task_company" implied="false" onDeleteCascade="false" schema="public" table="task_transition_history"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="company_id" foreignKey="fk_approval_request_task_company" implied="false" onDeleteCascade="false" schema="public" table="approval_request"/>
            <child column="company_id" foreignKey="fk_external_submission_task_company" implied="false" onDeleteCascade="false" schema="public" table="external_submission"/>
            <child column="company_id" foreignKey="fk_task_checklist_task_company" implied="false" onDeleteCascade="true" schema="public" table="task_checklist_item"/>
            <child column="company_id" foreignKey="fk_task_evidence_task_company" implied="false" onDeleteCascade="false" schema="public" table="task_evidence"/>
            <child column="company_id" foreignKey="fk_task_transition_task_company" implied="false" onDeleteCascade="false" schema="public" table="task_transition_history"/>
            <parent column="company_id" foreignKey="fk_task_updated_by_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
            <parent column="company_id" foreignKey="fk_task_worker_company" implied="false" onDeleteCascade="false" schema="public" table="worker"/>
            <parent column="company_id" foreignKey="fk_task_company" implied="false" onDeleteCascade="false" schema="public" table="company"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="worker_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="worker_id" foreignKey="fk_task_worker_company" implied="false" onDeleteCascade="false" schema="public" table="worker"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="case_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="task_type" nullable="false" remarks="" size="40" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="workflow_id" nullable="false" remarks="" size="100" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="workflow_catalog_version" nullable="false" remarks="" size="80" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="title" nullable="false" remarks="" size="160" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="description" nullable="true" remarks="" size="2000" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="business_data_json" nullable="false" remarks="" size="2147483647" type="text" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="10" name="critical_fingerprint" nullable="false" remarks="" size="64" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="11" name="content_revision" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="12" name="source" nullable="false" remarks="" size="30" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="13" name="status" nullable="false" remarks="" size="30" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="14" name="due_date" nullable="true" remarks="" size="13" type="date" typeCode="91"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="15" name="created_by" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_task_created_by_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="16" name="updated_by" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_task_updated_by_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="6" id="17" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="18" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="19" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <primaryKey column="task_id" sequenceNumberInPK="1"/>
         <index name="pk_task" unique="true">
            <column ascending="true" name="task_id"/>
         </index>
         <index name="idx_task_company_case" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="case_id"/>
         </index>
         <index name="idx_task_company_status_due" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="status"/>
            <column ascending="true" name="due_date"/>
         </index>
         <index name="idx_task_company_worker" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="worker_id"/>
            <column ascending="true" name="created_at"/>
         </index>
         <index name="uq_task_id_company" unique="true">
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="company_id"/>
         </index>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM business_data_json)) &gt; 0)" name="ck_task_business_data_not_blank"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM workflow_catalog_version)) &gt; 0)" name="ck_task_catalog_version_not_blank"/>
         <checkConstraint constraint="(content_revision &gt;= 0)" name="ck_task_content_revision"/>
         <checkConstraint constraint="(char_length((critical_fingerprint)::text) = 64)" name="ck_task_fingerprint_length"/>
         <checkConstraint constraint="((critical_fingerprint)::text = lower((critical_fingerprint)::text))" name="ck_task_fingerprint_lowercase"/>
         <checkConstraint constraint="((source)::text = ANY ((ARRAY['MANUAL'::character varying, 'SYSTEM_DDAY'::character varying, 'AI_CANDIDATE'::character varying])::text[]))" name="ck_task_source"/>
         <checkConstraint constraint="((status)::text = ANY ((ARRAY['DRAFT'::character varying, 'NEEDS_INFO'::character varying, 'READY_FOR_REVIEW'::character varying, 'APPROVED'::character varying, 'WAITING_WORKER'::character varying, 'WAITING_EXTERNAL'::character varying, 'COMPLETED'::character varying, 'CANCELLED'::character varying])::text[]))" name="ck_task_status"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM title)) &gt; 0)" name="ck_task_title_not_blank"/>
         <checkConstraint constraint="((task_type)::text = ANY ((ARRAY['RECONTRACT'::character varying, 'EMPLOYMENT_PERIOD_EXTENSION'::character varying, 'STAY_PERIOD_EXTENSION'::character varying])::text[]))" name="ck_task_type"/>
         <checkConstraint constraint="(updated_at &gt;= created_at)" name="ck_task_updated_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_task_version"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM workflow_id)) &gt; 0)" name="ck_task_workflow_id_not_blank"/>
      </table>
      <table name="task_checklist_item" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="checklist_item_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="task_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="task_id" foreignKey="fk_task_checklist_task_company" implied="false" onDeleteCascade="true" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_task_checklist_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
            <parent column="company_id" foreignKey="fk_task_checklist_task_company" implied="false" onDeleteCascade="true" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="item_code" nullable="false" remarks="" size="100" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="label" nullable="false" remarks="" size="300" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="required" nullable="false" remarks="" size="1" type="bool" typeCode="-7"/>
         <column autoUpdated="false" defaultValue="false" digits="0" id="6" name="completed" nullable="false" remarks="" size="1" type="bool" typeCode="-7"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="completed_by" nullable="true" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_task_checklist_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="6" id="8" name="completed_at" nullable="true" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="9" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="10" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="11" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <primaryKey column="checklist_item_id" sequenceNumberInPK="1"/>
         <index name="pk_task_checklist_item" unique="true">
            <column ascending="true" name="checklist_item_id"/>
         </index>
         <index name="idx_task_checklist_task" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="task_id"/>
         </index>
         <index name="uq_task_checklist_code" unique="true">
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="item_code"/>
         </index>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM item_code)) &gt; 0)" name="ck_task_checklist_code_not_blank"/>
         <checkConstraint constraint="(((completed = false) AND (completed_by IS NULL) AND (completed_at IS NULL)) OR ((completed = true) AND (completed_by IS NOT NULL) AND (completed_at IS NOT NULL)))" name="ck_task_checklist_completion"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM label)) &gt; 0)" name="ck_task_checklist_label_not_blank"/>
         <checkConstraint constraint="(updated_at &gt;= created_at)" name="ck_task_checklist_updated_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_task_checklist_version"/>
      </table>
      <table name="task_evidence" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="evidence_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="task_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="task_id" foreignKey="fk_task_evidence_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_task_evidence_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
            <parent column="company_id" foreignKey="fk_task_evidence_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="evidence_type" nullable="false" remarks="" size="30" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="file_reference" nullable="true" remarks="" size="300" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="note" nullable="true" remarks="" size="500" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="recorded_by" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_task_evidence_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="6" id="7" name="recorded_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="8" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="evidence_id" sequenceNumberInPK="1"/>
         <index name="pk_task_evidence" unique="true">
            <column ascending="true" name="evidence_id"/>
         </index>
         <index name="idx_task_evidence_task" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="recorded_at"/>
         </index>
         <index name="uq_task_evidence_id_task_company" unique="true">
            <column ascending="true" name="evidence_id"/>
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="company_id"/>
         </index>
         <checkConstraint constraint="(((file_reference IS NOT NULL) AND (char_length(TRIM(BOTH FROM file_reference)) &gt; 0)) OR ((note IS NOT NULL) AND (char_length(TRIM(BOTH FROM note)) &gt; 0)))" name="ck_task_evidence_content"/>
         <checkConstraint constraint="(created_at &gt;= recorded_at)" name="ck_task_evidence_created_at"/>
         <checkConstraint constraint="((evidence_type)::text = ANY ((ARRAY['DOCUMENT'::character varying, 'RECEIPT'::character varying, 'OFFICIAL_RESULT'::character varying, 'HR_CONFIRMATION'::character varying])::text[]))" name="ck_task_evidence_type"/>
      </table>
      <table name="task_transition_history" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="transition_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="task_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="task_id" foreignKey="fk_task_transition_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_task_transition_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
            <parent column="company_id" foreignKey="fk_task_transition_task_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="from_status" nullable="false" remarks="" size="30" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="to_status" nullable="false" remarks="" size="30" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="actor_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="user_id" foreignKey="fk_task_transition_actor_company" implied="false" onDeleteCascade="false" schema="public" table="user_account"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="reason" nullable="true" remarks="" size="500" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="request_id" nullable="false" remarks="" size="128" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="6" id="8" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <primaryKey column="transition_id" sequenceNumberInPK="1"/>
         <index name="pk_task_transition_history" unique="true">
            <column ascending="true" name="transition_id"/>
         </index>
         <index name="idx_task_transition_task_time" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="task_id"/>
            <column ascending="true" name="created_at"/>
         </index>
         <checkConstraint constraint="((from_status)::text &lt;&gt; (to_status)::text)" name="ck_task_transition_changed"/>
         <checkConstraint constraint="((from_status)::text = ANY ((ARRAY['DRAFT'::character varying, 'NEEDS_INFO'::character varying, 'READY_FOR_REVIEW'::character varying, 'APPROVED'::character varying, 'WAITING_WORKER'::character varying, 'WAITING_EXTERNAL'::character varying, 'COMPLETED'::character varying, 'CANCELLED'::character varying])::text[]))" name="ck_task_transition_from_status"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM request_id)) &gt; 0)" name="ck_task_transition_request_not_blank"/>
         <checkConstraint constraint="((to_status)::text = ANY ((ARRAY['DRAFT'::character varying, 'NEEDS_INFO'::character varying, 'READY_FOR_REVIEW'::character varying, 'APPROVED'::character varying, 'WAITING_WORKER'::character varying, 'WAITING_EXTERNAL'::character varying, 'COMPLETED'::character varying, 'CANCELLED'::character varying])::text[]))" name="ck_task_transition_to_status"/>
      </table>
      <table name="user_account" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="user_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="decided_by" foreignKey="fk_approval_request_decider_company" implied="false" onDeleteCascade="false" schema="public" table="approval_request"/>
            <child column="requested_by" foreignKey="fk_approval_request_requester_company" implied="false" onDeleteCascade="false" schema="public" table="approval_request"/>
            <child column="submitted_by" foreignKey="fk_external_submission_actor_company" implied="false" onDeleteCascade="false" schema="public" table="external_submission"/>
            <child column="user_id" foreignKey="fk_refresh_token_user_company" implied="false" onDeleteCascade="false" schema="public" table="refresh_token"/>
            <child column="created_by" foreignKey="fk_task_created_by_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
            <child column="updated_by" foreignKey="fk_task_updated_by_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
            <child column="completed_by" foreignKey="fk_task_checklist_actor_company" implied="false" onDeleteCascade="false" schema="public" table="task_checklist_item"/>
            <child column="recorded_by" foreignKey="fk_task_evidence_actor_company" implied="false" onDeleteCascade="false" schema="public" table="task_evidence"/>
            <child column="actor_id" foreignKey="fk_task_transition_actor_company" implied="false" onDeleteCascade="false" schema="public" table="task_transition_history"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="company_id" foreignKey="fk_approval_request_requester_company" implied="false" onDeleteCascade="false" schema="public" table="approval_request"/>
            <child column="company_id" foreignKey="fk_external_submission_actor_company" implied="false" onDeleteCascade="false" schema="public" table="external_submission"/>
            <child column="company_id" foreignKey="fk_refresh_token_user_company" implied="false" onDeleteCascade="false" schema="public" table="refresh_token"/>
            <child column="company_id" foreignKey="fk_task_updated_by_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
            <child column="company_id" foreignKey="fk_task_checklist_actor_company" implied="false" onDeleteCascade="false" schema="public" table="task_checklist_item"/>
            <child column="company_id" foreignKey="fk_task_evidence_actor_company" implied="false" onDeleteCascade="false" schema="public" table="task_evidence"/>
            <child column="company_id" foreignKey="fk_task_transition_actor_company" implied="false" onDeleteCascade="false" schema="public" table="task_transition_history"/>
            <parent column="company_id" foreignKey="fk_user_account_company" implied="false" onDeleteCascade="false" schema="public" table="company"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="email" nullable="false" remarks="" size="254" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="normalized_email" nullable="false" remarks="" size="254" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="password_hash" nullable="false" remarks="" size="255" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="role" nullable="false" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="status" nullable="false" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="7" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="8" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="9" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <column autoUpdated="false" defaultValue="'사용자'::character varying" digits="0" id="10" name="display_name" nullable="false" remarks="" size="80" type="varchar" typeCode="12"/>
         <primaryKey column="user_id" sequenceNumberInPK="1"/>
         <index name="pk_user_account" unique="true">
            <column ascending="true" name="user_id"/>
         </index>
         <index name="idx_user_account_company" unique="false">
            <column ascending="true" name="company_id"/>
         </index>
         <index name="uq_user_account_normalized_email" unique="true">
            <column ascending="true" name="normalized_email"/>
         </index>
         <index name="uq_user_account_user_company" unique="true">
            <column ascending="true" name="user_id"/>
            <column ascending="true" name="company_id"/>
         </index>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM display_name)) &gt; 0)" name="ck_user_account_display_name_not_blank"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM email)) &gt; 0)" name="ck_user_account_email_not_blank"/>
         <checkConstraint constraint="((normalized_email)::text = lower(TRIM(BOTH FROM email)))" name="ck_user_account_normalized_email"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM normalized_email)) &gt; 0)" name="ck_user_account_normalized_email_not_blank"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM password_hash)) &gt; 0)" name="ck_user_account_password_hash_not_blank"/>
         <checkConstraint constraint="((role)::text = ANY ((ARRAY['ADMIN'::character varying, 'HR'::character varying, 'VIEWER'::character varying])::text[]))" name="ck_user_account_role"/>
         <checkConstraint constraint="((status)::text = ANY ((ARRAY['ACTIVE'::character varying, 'SUSPENDED'::character varying, 'DISABLED'::character varying])::text[]))" name="ck_user_account_status"/>
         <checkConstraint constraint="(updated_at &gt;= created_at)" name="ck_user_account_updated_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_user_account_version"/>
      </table>
      <table name="worker" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="worker_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="worker_id" foreignKey="fk_task_worker_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
            <child column="worker_id" foreignKey="fk_worker_document_worker" implied="false" onDeleteCascade="false" schema="public" table="worker_document"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <child column="company_id" foreignKey="fk_task_worker_company" implied="false" onDeleteCascade="false" schema="public" table="task"/>
            <child column="company_id" foreignKey="fk_worker_document_worker" implied="false" onDeleteCascade="false" schema="public" table="worker_document"/>
            <parent column="company_id" foreignKey="fk_worker_company" implied="false" onDeleteCascade="false" schema="public" table="company"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="display_name" nullable="false" remarks="" size="120" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="nationality_code" nullable="true" remarks="" size="10" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="preferred_language" nullable="true" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="work_status" nullable="false" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="stay_expiry_date" nullable="true" remarks="" size="13" type="date" typeCode="91"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="contract_start_date" nullable="true" remarks="" size="13" type="date" typeCode="91"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="contract_end_date" nullable="true" remarks="" size="13" type="date" typeCode="91"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="9" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="10" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="11" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <primaryKey column="worker_id" sequenceNumberInPK="1"/>
         <index name="pk_worker" unique="true">
            <column ascending="true" name="worker_id"/>
         </index>
         <index name="idx_worker_company" unique="false">
            <column ascending="true" name="company_id"/>
         </index>
         <index name="uq_worker_id_company" unique="true">
            <column ascending="true" name="worker_id"/>
            <column ascending="true" name="company_id"/>
         </index>
         <checkConstraint constraint="((contract_start_date IS NULL) OR (contract_end_date IS NULL) OR (contract_end_date &gt;= contract_start_date))" name="ck_worker_contract_period"/>
         <checkConstraint constraint="(char_length(TRIM(BOTH FROM display_name)) &gt; 0)" name="ck_worker_display_name_not_blank"/>
         <checkConstraint constraint="(updated_at &gt;= created_at)" name="ck_worker_updated_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_worker_version"/>
         <checkConstraint constraint="((work_status)::text = ANY ((ARRAY['ACTIVE'::character varying, 'ON_LEAVE'::character varying, 'RESIGNED'::character varying, 'TERMINATED'::character varying])::text[]))" name="ck_worker_work_status"/>
      </table>
      <table name="worker_document" remarks="" schema="public" type="TABLE">
         <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="worker_document_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="worker_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="worker_id" foreignKey="fk_worker_document_worker" implied="false" onDeleteCascade="false" schema="public" table="worker"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="company_id" nullable="false" remarks="" size="2147483647" type="uuid" typeCode="1111">
            <parent column="company_id" foreignKey="fk_worker_document_worker" implied="false" onDeleteCascade="false" schema="public" table="worker"/>
         </column>
         <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="document_type" nullable="false" remarks="" size="40" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="submission_status" nullable="false" remarks="" size="20" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="expiry_date" nullable="true" remarks="" size="13" type="date" typeCode="91"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="6" name="destination" nullable="true" remarks="" size="120" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="note" nullable="true" remarks="" size="500" type="varchar" typeCode="12"/>
         <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="file_id" nullable="true" remarks="" size="2147483647" type="uuid" typeCode="1111"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="9" name="created_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="CURRENT_TIMESTAMP" digits="6" id="10" name="updated_at" nullable="false" remarks="" size="35" type="timestamptz" typeCode="93"/>
         <column autoUpdated="false" defaultValue="0" digits="0" id="11" name="version" nullable="false" remarks="" size="19" type="int8" typeCode="-5"/>
         <primaryKey column="worker_document_id" sequenceNumberInPK="1"/>
         <index name="pk_worker_document" unique="true">
            <column ascending="true" name="worker_document_id"/>
         </index>
         <index name="idx_worker_document_company_status" unique="false">
            <column ascending="true" name="company_id"/>
            <column ascending="true" name="submission_status"/>
         </index>
         <index name="idx_worker_document_worker" unique="false">
            <column ascending="true" name="worker_id"/>
         </index>
         <checkConstraint constraint="((submission_status)::text = ANY ((ARRAY['MISSING'::character varying, 'SUBMITTED'::character varying, 'VERIFIED'::character varying])::text[]))" name="ck_worker_document_submission_status"/>
         <checkConstraint constraint="((document_type)::text = ANY ((ARRAY['PASSPORT_COPY'::character varying, 'ARC'::character varying, 'CONTRACT'::character varying, 'PERMIT'::character varying])::text[]))" name="ck_worker_document_type"/>
         <checkConstraint constraint="(updated_at &gt;= created_at)" name="ck_worker_document_updated_at"/>
         <checkConstraint constraint="(version &gt;= 0)" name="ck_worker_document_version"/>
      </table>
   </tables>
</database>
