diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..565e23b --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,116 @@ +name: Signed Release + +on: + push: + tags: + - "v*" + +jobs: + release: + runs-on: ubuntu-latest + env: + GITEA_BASE_URL: ${{ vars.GITEA_BASE_URL }} + GITEA_REPOSITORY: ${{ github.repository }} + GITEA_ALLOW_INSECURE_HTTP: ${{ vars.GITEA_ALLOW_INSECURE_HTTP }} + GITEA_TOKEN: ${{ secrets.RELEASE_GITEA_TOKEN }} + RELEASE_PRIVATE_KEY_B64: ${{ secrets.RELEASE_PRIVATE_KEY_B64 }} + NODE_OPTIONS: --max-old-space-size=8192 + steps: + - name: Check out source + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Build, sign, and publish release + shell: bash + run: | + set -euo pipefail + + tag="${GITHUB_REF_NAME:?missing tag name}" + version="${tag#v}" + [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ ]] \ + || { printf 'invalid release tag: %s\n' "$tag" >&2; exit 2; } + + api_base="${GITEA_BASE_URL:?missing GITEA_BASE_URL repository variable}" + repository="${GITEA_REPOSITORY:-awaioi/ERP}" + case "$api_base" in + https://*) curl_protocols=(--proto '=https' --proto-redir '=https') ;; + http://*) + [[ "${GITEA_ALLOW_INSECURE_HTTP:-0}" == "1" || "${GITEA_ALLOW_INSECURE_HTTP:-0}" == "true" ]] \ + || { printf 'GITEA_BASE_URL must use HTTPS\n' >&2; exit 1; } + curl_protocols=(--proto '=http,https' --proto-redir '=http,https') + ;; + *) printf 'invalid GITEA_BASE_URL\n' >&2; exit 1 ;; + esac + [[ "$repository" =~ ^[^/[:space:]]+/[^/[:space:]]+$ ]] \ + || { printf 'invalid GITEA_REPOSITORY\n' >&2; exit 1; } + [[ -n "${GITEA_TOKEN:-}" ]] || { printf 'missing RELEASE_GITEA_TOKEN secret\n' >&2; exit 1; } + [[ -n "${RELEASE_PRIVATE_KEY_B64:-}" ]] \ + || { printf 'missing RELEASE_PRIVATE_KEY_B64 secret\n' >&2; exit 1; } + + umask 077 + key_file="${RUNNER_TEMP:-/tmp}/kaidi-erp-release-key.pem" + cleanup() { rm -f "$key_file" release.json release-payload.json; } + trap cleanup EXIT + printf '%s' "$RELEASE_PRIVATE_KEY_B64" | base64 --decode > "$key_file" + export ERP_RELEASE_PRIVATE_KEY_FILE="$key_file" + bash scripts/package-release.sh "$version" + + owner="${repository%%/*}" + repo="${repository#*/}" + release_api="${api_base%/}/api/v1/repos/$owner/$repo/releases" + auth_header="Authorization: token $GITEA_TOKEN" + status="$(curl "${curl_protocols[@]}" --silent --show-error --location \ + --output release.json --write-out '%{http_code}' \ + --header "$auth_header" --header 'Accept: application/json' \ + "$release_api/tags/$tag")" + + python3 - "$tag" > release-payload.json <<'PY' + import json, sys + tag = sys.argv[1] + print(json.dumps({ + "tag_name": tag, + "name": tag, + "body": f"Kaidi ERP {tag}", + "draft": False, + "prerelease": "-" in tag.split("+", 1)[0], + }, separators=(",", ":"))) + PY + + if [[ "$status" == "404" ]]; then + curl "${curl_protocols[@]}" --fail-with-body --silent --show-error --location --retry 3 \ + --header "$auth_header" --header 'Content-Type: application/json' \ + --data-binary @release-payload.json --output release.json "$release_api" + elif [[ "$status" == "200" ]]; then + release_id="$(python3 -c 'import json; print(json.load(open("release.json"))["id"])')" + curl "${curl_protocols[@]}" --fail-with-body --silent --show-error --location --retry 3 \ + --request PATCH --header "$auth_header" --header 'Content-Type: application/json' \ + --data-binary @release-payload.json --output release.json "$release_api/$release_id" + else + printf 'Gitea release lookup returned HTTP %s\n' "$status" >&2 + cat release.json >&2 + exit 1 + fi + + release_id="$(python3 -c 'import json; print(json.load(open("release.json"))["id"])')" + for asset in "dist/kaidi-erp-$version.tar.gz" dist/SHA256SUMS dist/SHA256SUMS.sig; do + name="$(basename "$asset")" + encoded_name="$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "$name")" + existing_id="$(python3 - "$name" <<'PY' + import json, sys + release = json.load(open("release.json")) + print(next((item["id"] for item in release.get("assets", []) if item.get("name") == sys.argv[1]), "")) + PY + )" + if [[ -n "$existing_id" ]]; then + curl "${curl_protocols[@]}" --fail-with-body --silent --show-error --location --retry 3 \ + --request DELETE --header "$auth_header" \ + "$release_api/$release_id/assets/$existing_id" + fi + curl "${curl_protocols[@]}" --fail-with-body --silent --show-error --location --retry 3 \ + --request POST --header "$auth_header" \ + --form "attachment=@$asset" \ + "$release_api/$release_id/assets?name=$encoded_name" >/dev/null + done + + printf 'Published %s release %s\n' "$repository" "$tag" diff --git a/distribution/bin/erp-run b/distribution/bin/erp-run new file mode 100755 index 0000000..6768e24 --- /dev/null +++ b/distribution/bin/erp-run @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" +INSTALL_ROOT="${ERP_INSTALL_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd -P)}" +CONFIG_FILE="${ERP_CONFIG_FILE:-$INSTALL_ROOT/config/erp.env}" + +if [[ ! -r "$CONFIG_FILE" ]]; then + printf '[ERP] configuration not readable: %s\n' "$CONFIG_FILE" >&2 + exit 1 +fi + +set -a +# The installer creates this file with shell-escaped values and mode 0640. +# shellcheck disable=SC1090 +source "$CONFIG_FILE" +set +a + +RUN_DIR="${ERP_RUN_DIR:-$INSTALL_ROOT/run}" +JAR_PATH="${ERP_JAR_PATH:-$INSTALL_ROOT/current/app/kaidi-erp.jar}" +JAVA_BIN="${ERP_JAVA_BIN:-}" + +if [[ -z "$JAVA_BIN" ]]; then + if [[ -n "${JAVA_HOME:-}" && -x "$JAVA_HOME/bin/java" ]]; then + JAVA_BIN="$JAVA_HOME/bin/java" + else + JAVA_BIN="$(command -v java || true)" + fi +fi + +if [[ -z "$JAVA_BIN" || ! -x "$JAVA_BIN" ]]; then + printf '[ERP] Java 17+ is not installed\n' >&2 + exit 1 +fi +JAVA_MAJOR="$("$JAVA_BIN" -version 2>&1 | awk -F'[".]' '/version/ {print $2; exit}')" +if [[ ! "$JAVA_MAJOR" =~ ^[0-9]+$ || "$JAVA_MAJOR" -lt 17 ]]; then + printf '[ERP] Java 17+ is required\n' >&2 + exit 1 +fi +if [[ ! -r "$JAR_PATH" ]]; then + printf '[ERP] application jar not readable: %s\n' "$JAR_PATH" >&2 + exit 1 +fi + +mkdir -p "$RUN_DIR" +printf '%s\n' "$$" > "$RUN_DIR/app.pid" + +IFS=$' \t' read -r -a JAVA_OPTS <<< "${ERP_JAVA_OPTS:--Xms512m -Xmx2g}" +exec "$JAVA_BIN" "${JAVA_OPTS[@]}" \ + -jar "$JAR_PATH" \ + --spring.profiles.active=postgres \ + --server.port="${SERVER_PORT:-8091}" diff --git a/distribution/bin/erp-update b/distribution/bin/erp-update new file mode 100755 index 0000000..974f3a4 --- /dev/null +++ b/distribution/bin/erp-update @@ -0,0 +1,461 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" +INSTALL_ROOT="${ERP_INSTALL_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd -P)}" +CONFIG_FILE="${ERP_CONFIG_FILE:-$INSTALL_ROOT/config/erp.env}" + +if [[ ! -r "$CONFIG_FILE" ]]; then + printf '[ERP Update] configuration not readable: %s\n' "$CONFIG_FILE" >&2 + exit 1 +fi + +set -a +# shellcheck disable=SC1090 +source "$CONFIG_FILE" +set +a + +STATE_FILE="${OA_UPDATE_STATE_FILE:-${ERP_STATE_FILE:-$INSTALL_ROOT/state/update-state.json}}" +RUN_DIR="${ERP_RUN_DIR:-$INSTALL_ROOT/run}" +RELEASES_DIR="$INSTALL_ROOT/releases" +CURRENT_LINK="$INSTALL_ROOT/current" +HEALTH_URL="${ERP_HEALTH_URL:-http://127.0.0.1:${SERVER_PORT:-8091}/api/oa/health}" +GITEA_BASE_URL="${OA_UPDATE_GITEA_BASE_URL:-}" +REPOSITORY="${OA_UPDATE_REPOSITORY:-awaioi/ERP}" +CHANNEL="${OA_UPDATE_CHANNEL:-stable}" +TOKEN="${OA_UPDATE_TOKEN:-}" +ALLOW_INSECURE="${OA_UPDATE_ALLOW_INSECURE_HTTP:-false}" +PUBLIC_KEY_FILE="${ERP_UPDATE_PUBLIC_KEY_FILE:-$INSTALL_ROOT/config/release-public-key.pem}" +REQUIRE_SIGNATURE="${ERP_UPDATE_REQUIRE_SIGNATURE:-true}" +BACKUP_MODE="${ERP_UPDATE_BACKUP_MODE:-none}" +HEALTH_TIMEOUT_SECONDS="${ERP_UPDATE_HEALTH_TIMEOUT_SECONDS:-120}" +HEALTH_POLL_SECONDS="${ERP_UPDATE_HEALTH_POLL_SECONDS:-2}" +TMP_DIR="" +LOCK_FILE="$RUN_DIR/update.lock" +FINAL_STATE=0 + +say() { printf '[ERP Update] %s\n' "$*"; } + +write_state() { + local phase="$1" progress="$2" message="$3" version="${4:-}" error="${5:-}" + mkdir -p "$(dirname "$STATE_FILE")" + python3 - "$STATE_FILE" "$phase" "$progress" "$message" "$version" "$error" <<'PY' +import json, os, sys, tempfile +from datetime import datetime, timezone + +path, phase, progress, message, version, error = sys.argv[1:] +payload = { + "phase": phase, + "progress": int(progress), + "message": message, + "version": version or None, + "error": error or None, + "updatedAt": datetime.now(timezone.utc).isoformat().replace("+00:00", "Z"), +} +parent = os.path.dirname(path) or "." +fd, tmp = tempfile.mkstemp(prefix=".update-state-", dir=parent, text=True) +try: + with os.fdopen(fd, "w", encoding="utf-8") as handle: + json.dump(payload, handle, ensure_ascii=False, separators=(",", ":")) + handle.write("\n") + os.chmod(tmp, 0o640) + os.replace(tmp, path) +finally: + if os.path.exists(tmp): + os.unlink(tmp) +PY +} + +cleanup() { + if [[ -n "$TMP_DIR" && -d "$TMP_DIR" ]]; then + rm -rf "$TMP_DIR" + fi +} + +on_exit() { + local code=$? + if [[ "$code" != "0" && "$FINAL_STATE" != "1" ]]; then + write_state FAILED 0 "更新失败" "${TARGET_VERSION:-}" "更新助手异常退出(code $code)" || true + fi + cleanup +} +trap on_exit EXIT + +fail() { + local message="$1" + write_state FAILED "${2:-0}" "更新失败" "${TARGET_VERSION:-}" "$message" || true + FINAL_STATE=1 + printf '[ERP Update] ERROR: %s\n' "$message" >&2 + exit 1 +} + +require_command() { + command -v "$1" >/dev/null 2>&1 || fail "缺少命令:$1" +} + +validate_https_url() { + local value="$1" + case "$value" in + https://*) return 0 ;; + http://*) [[ "$ALLOW_INSECURE" == "true" || "$ALLOW_INSECURE" == "1" ]] && return 0 ;; + esac + fail "更新地址必须使用 HTTPS" +} + +acquire_lock_or_reexec() { + [[ "${ERP_UPDATE_LOCK_HELD:-0}" == "1" ]] && return 0 + mkdir -p "$RUN_DIR" + command -v python3 >/dev/null 2>&1 || { + printf '[ERP Update] ERROR: 缺少命令:python3\n' >&2 + exit 1 + } + exec python3 - "$LOCK_FILE" "$0" "$@" <<'PY' +import fcntl +import os +import shutil +import sys +import time + +lock_path, script, *args = sys.argv[1:] +if os.path.isdir(lock_path): + owner = "" + try: + with open(os.path.join(lock_path, "pid"), encoding="ascii") as handle: + owner = handle.read().strip() + except OSError: + pass + alive = False + if owner.isdigit(): + try: + os.kill(int(owner), 0) + alive = True + except OSError: + pass + try: + recent = time.time() - os.stat(lock_path).st_mtime < 30 + except OSError: + recent = False + if alive or recent: + raise SystemExit(f"已有更新任务正在执行(PID {owner or 'unknown'})") + try: + shutil.rmtree(lock_path) + except FileNotFoundError: + pass + +lock = open(lock_path, "a+", encoding="ascii") +try: + fcntl.flock(lock.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB) +except BlockingIOError: + lock.seek(0) + owner = lock.read().strip() or "unknown" + raise SystemExit(f"已有更新任务正在执行(PID {owner})") +lock.seek(0) +lock.truncate() +lock.write(str(os.getpid()) + "\n") +lock.flush() +os.fchmod(lock.fileno(), 0o640) +os.set_inheritable(lock.fileno(), True) +env = os.environ.copy() +env["ERP_UPDATE_LOCK_HELD"] = "1" +script = os.path.abspath(script) +os.execve(script, [script, *args], env) +PY +} + +create_curl_config() { + CURL_CONFIG="$TMP_DIR/curl.conf" + { + printf 'silent\nshow-error\nfail\nlocation\n' + printf 'connect-timeout = 15\nmax-time = 900\n' + if [[ "$ALLOW_INSECURE" == "true" || "$ALLOW_INSECURE" == "1" ]]; then + printf 'proto = "=http,https"\nproto-redir = "=http,https"\n' + else + printf 'proto = "=https"\nproto-redir = "=https"\n' + fi + if [[ -n "$TOKEN" ]]; then + [[ "$TOKEN" =~ ^[A-Za-z0-9._-]+$ ]] || fail "Gitea Token 格式无效" + printf 'header = "Authorization: token %s"\n' "$TOKEN" + fi + } > "$CURL_CONFIG" + chmod 600 "$CURL_CONFIG" +} + +download() { + local url="$1" output="$2" + validate_https_url "$url" + curl --config "$CURL_CONFIG" --output "$output" "$url" +} + +select_release() { + local release_json="$1" requested="$2" output="$3" + python3 - "$release_json" "$requested" "$CHANNEL" > "$output" <<'PY' +import json, re, sys + +path, requested, channel = sys.argv[1:] +with open(path, encoding="utf-8") as handle: + release = json.load(handle) +tag = str(release.get("tag_name") or "").strip() +match = re.fullmatch(r"v?(\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?)", tag) +if not match: + raise SystemExit("invalid release tag") +version = match.group(1) +if requested and requested.removeprefix("v") != version: + raise SystemExit("requested version is no longer latest") +if release.get("draft"): + raise SystemExit("latest release is a draft") +if channel.lower() == "stable" and release.get("prerelease"): + raise SystemExit("prerelease rejected on stable channel") +if channel.lower() == "stable" and "-" in version.split("+", 1)[0]: + raise SystemExit("prerelease tag rejected on stable channel") +assets = {str(item.get("name")): str(item.get("browser_download_url") or "") for item in release.get("assets", [])} +names = [f"kaidi-erp-{version}.tar.gz", "SHA256SUMS", "SHA256SUMS.sig"] +urls = [assets.get(name, "") for name in names] +if any(not value or any(ch.isspace() for ch in value) for value in urls): + raise SystemExit("release assets are incomplete") +print("\t".join([version, *urls])) +PY +} + +verify_signature_and_checksum() { + local archive="$1" sums="$2" signature="$3" archive_name="$4" + write_state VERIFYING 45 "正在校验发布签名" "$TARGET_VERSION" + if [[ "$REQUIRE_SIGNATURE" == "true" || "$REQUIRE_SIGNATURE" == "1" ]]; then + [[ -r "$PUBLIC_KEY_FILE" ]] || fail "找不到发布公钥" 45 + require_command openssl + local openssl_version algorithms + openssl_version="$(openssl version 2>/dev/null || true)" + [[ "$openssl_version" =~ ^OpenSSL[[:space:]]3\. ]] \ + || fail "签名验证需要 OpenSSL 3" 45 + algorithms="$(openssl list -public-key-algorithms 2>/dev/null || true)" + grep -qi ED25519 <<< "$algorithms" \ + || fail "当前 OpenSSL 不支持 Ed25519" 45 + openssl pkeyutl -verify -rawin -pubin -inkey "$PUBLIC_KEY_FILE" \ + -sigfile "$signature" -in "$sums" >/dev/null \ + || fail "Release Ed25519 签名验证失败" 45 + fi + + local expected actual + expected="$(python3 - "$sums" "$archive_name" <<'PY' +import re, sys +path, wanted = sys.argv[1:] +for line in open(path, encoding="utf-8"): + match = re.fullmatch(r"([0-9a-fA-F]{64})\s+\*?(.+?)\s*", line) + if match and match.group(2) == wanted: + print(match.group(1).lower()) + break +PY +)" + [[ "$expected" =~ ^[0-9a-f]{64}$ ]] || fail "SHA256SUMS 缺少安装包校验值" 50 + if command -v sha256sum >/dev/null 2>&1; then + actual="$(sha256sum "$archive" | awk '{print $1}')" + else + actual="$(shasum -a 256 "$archive" | awk '{print $1}')" + fi + [[ "$actual" == "$expected" ]] || fail "安装包 SHA-256 校验失败" 50 +} + +extract_archive() { + local archive="$1" destination="$2" + python3 - "$archive" <<'PY' +import pathlib, sys, tarfile +with tarfile.open(sys.argv[1], "r:gz") as archive: + for member in archive.getmembers(): + path = pathlib.PurePosixPath(member.name) + if path.is_absolute() or ".." in path.parts or member.issym() or member.islnk(): + raise SystemExit(f"unsafe archive member: {member.name}") +PY + mkdir -p "$destination" + tar -xzf "$archive" -C "$destination" +} + +atomic_switch() { + local target="$1" + python3 - "$CURRENT_LINK" "$target" <<'PY' +import os, sys +link, target = sys.argv[1:] +tmp = f"{link}.new-{os.getpid()}" +try: + os.symlink(target, tmp) + os.replace(tmp, link) +finally: + if os.path.lexists(tmp): + os.unlink(tmp) +PY +} + +wait_for_restarted_health() { + local old_pid="$1" deadline=$((SECONDS + HEALTH_TIMEOUT_SECONDS)) + while (( SECONDS < deadline )); do + local new_pid="" + [[ -r "$RUN_DIR/app.pid" ]] && new_pid="$(<"$RUN_DIR/app.pid")" + if [[ "$new_pid" =~ ^[0-9]+$ && "$new_pid" != "$old_pid" ]] \ + && kill -0 "$new_pid" 2>/dev/null \ + && curl -fsS --connect-timeout 2 --max-time 5 "$HEALTH_URL" >/dev/null 2>&1; then + return 0 + fi + sleep "$HEALTH_POLL_SECONDS" + done + return 1 +} + +wait_for_pid_exit() { + local pid="$1" deadline=$((SECONDS + ${2:-60})) + while kill -0 "$pid" 2>/dev/null; do + (( SECONDS < deadline )) || return 1 + sleep 1 + done +} + +clear_pid_file() { + local expected="$1" current="" + [[ -r "$RUN_DIR/app.pid" ]] && current="$(<"$RUN_DIR/app.pid")" + if [[ "$current" == "$expected" ]] && ! kill -0 "$expected" 2>/dev/null; then + rm -f "$RUN_DIR/app.pid" + fi +} + +terminate_application_pid() { + local pid="$1" + [[ "$pid" =~ ^[0-9]+$ && "$pid" != "$$" ]] || return 0 + if kill -0 "$pid" 2>/dev/null; then + kill -TERM "$pid" 2>/dev/null || return 1 + wait_for_pid_exit "$pid" 60 || return 1 + fi + clear_pid_file "$pid" +} + +stop_application() { + local pid="" + [[ -r "$RUN_DIR/app.pid" ]] && pid="$(<"$RUN_DIR/app.pid")" + [[ "$pid" =~ ^[0-9]+$ ]] || pid="${ERP_APP_PID:-}" + [[ "$pid" =~ ^[0-9]+$ ]] || fail "无法读取 ERP 服务 PID" 75 + [[ "$pid" != "$$" ]] || fail "拒绝停止更新助手自身" 75 + terminate_application_pid "$pid" || fail "ERP 服务 PID $pid 未能在 60 秒内停止" 75 + printf '%s\n' "$pid" +} + +backup_postgres_if_enabled() { + [[ "$BACKUP_MODE" == "pg_dump" ]] || return 0 + require_command pg_dump + local backup_dir="$INSTALL_ROOT/backups" + mkdir -p "$backup_dir" + local output="$backup_dir/pre-${TARGET_VERSION}-$(date -u +%Y%m%dT%H%M%SZ).dump" + write_state INSTALLING 60 "正在创建 PostgreSQL 逻辑备份" "$TARGET_VERSION" + PGPASSWORD="${OA_DB_PASSWORD:-}" PGSSLMODE="${ERP_PGSSLMODE:-prefer}" pg_dump \ + --host="${ERP_PGHOST:-127.0.0.1}" \ + --port="${ERP_PGPORT:-5432}" \ + --username="${OA_DB_USERNAME:-}" \ + --dbname="${ERP_PGDATABASE:-oa}" \ + --format=custom --file="$output" \ + || fail "PostgreSQL 备份失败,已取消更新" 60 + chmod 600 "$output" +} + +install_release() { + local requested="${1:-}" + validate_https_url "$GITEA_BASE_URL" + [[ "$HEALTH_TIMEOUT_SECONDS" =~ ^[1-9][0-9]*$ ]] \ + || fail "健康检查超时时间配置无效" + [[ "$HEALTH_POLL_SECONDS" =~ ^[1-9][0-9]*$ ]] \ + || fail "健康检查间隔配置无效" + [[ "$REPOSITORY" =~ ^[^/[:space:]]+/[^/[:space:]]+$ ]] || fail "更新仓库配置无效" + require_command curl + require_command python3 + require_command tar + TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/kaidi-erp-update.XXXXXX")" + create_curl_config + + write_state CHECKING 5 "正在读取 Gitea Release" "$requested" + local owner="${REPOSITORY%%/*}" repo="${REPOSITORY#*/}" + local api_url="${GITEA_BASE_URL%/}/api/v1/repos/$owner/$repo/releases/latest" + local release_json="$TMP_DIR/release.json" + download "$api_url" "$release_json" + + local selection="$TMP_DIR/selection" + select_release "$release_json" "$requested" "$selection" || fail "Release 元数据验证失败" 10 + local archive_url sums_url signature_url + IFS=$'\t' read -r TARGET_VERSION archive_url sums_url signature_url < "$selection" + local archive_name="kaidi-erp-${TARGET_VERSION}.tar.gz" + local archive="$TMP_DIR/$archive_name" sums="$TMP_DIR/SHA256SUMS" signature="$TMP_DIR/SHA256SUMS.sig" + + write_state DOWNLOADING 20 "正在下载版本 ${TARGET_VERSION}" "$TARGET_VERSION" + download "$archive_url" "$archive" + download "$sums_url" "$sums" + download "$signature_url" "$signature" + verify_signature_and_checksum "$archive" "$sums" "$signature" "$archive_name" + + write_state INSTALLING 55 "正在准备版本 ${TARGET_VERSION}" "$TARGET_VERSION" + local unpack="$TMP_DIR/unpack" + extract_archive "$archive" "$unpack" || fail "安装包结构验证失败" 55 + local source="$unpack/kaidi-erp-${TARGET_VERSION}" + [[ -r "$source/app/kaidi-erp.jar" && -x "$source/bin/erp-run" && -x "$source/bin/erp-update" ]] \ + || fail "安装包缺少运行文件" 55 + [[ "$(<"$source/VERSION")" == "$TARGET_VERSION" ]] || fail "安装包版本与 Release 不一致" 55 + python3 - "$source/manifest.json" "$TARGET_VERSION" <<'PY' || fail "版本清单不允许自动回滚" 55 +import json, sys +manifest = json.load(open(sys.argv[1], encoding="utf-8")) +if manifest.get("version") != sys.argv[2] or manifest.get("database") != "postgresql": + raise SystemExit(1) +if manifest.get("rollbackCompatible") is not True: + raise SystemExit(1) +PY + + mkdir -p "$RELEASES_DIR" + local release_dir="$RELEASES_DIR/$TARGET_VERSION" + if [[ -r "$CURRENT_LINK/VERSION" && "$(<"$CURRENT_LINK/VERSION")" == "$TARGET_VERSION" ]]; then + fail "目标版本已经安装" 55 + fi + local replaced="" + if [[ -e "$release_dir" ]]; then + replaced="${release_dir}.replaced-$$" + mv "$release_dir" "$replaced" + fi + if ! mv "$source" "$release_dir"; then + [[ -z "$replaced" || ! -e "$replaced" ]] || mv "$replaced" "$release_dir" + fail "无法写入目标版本目录" 55 + fi + [[ -z "$replaced" ]] || rm -rf "$replaced" + backup_postgres_if_enabled + + local previous="" + [[ -L "$CURRENT_LINK" ]] && previous="$(readlink "$CURRENT_LINK")" + [[ -n "$previous" ]] || fail "当前版本链接不存在,拒绝无回滚点更新" 70 + atomic_switch "releases/$TARGET_VERSION" + + write_state RESTARTING 80 "正在重启 ERP 服务" "$TARGET_VERSION" + local old_pid + old_pid="$(stop_application)" + if wait_for_restarted_health "$old_pid"; then + write_state SUCCEEDED 100 "更新完成" "$TARGET_VERSION" + FINAL_STATE=1 + say "updated to $TARGET_VERSION" + return 0 + fi + + write_state ROLLING_BACK 90 "新版本健康检查失败,正在回滚" "$TARGET_VERSION" + atomic_switch "$previous" + local failed_pid="" + [[ -r "$RUN_DIR/app.pid" ]] && failed_pid="$(<"$RUN_DIR/app.pid")" + terminate_application_pid "$failed_pid" || true + if wait_for_restarted_health "$failed_pid"; then + write_state ROLLED_BACK 100 "新版本不可用,已恢复上一版本" "$TARGET_VERSION" "健康检查失败" + FINAL_STATE=1 + exit 1 + fi + fail "新版本与回滚版本均未通过健康检查,需要人工处理" 100 +} + +main() { + local command="${1:-}" version="${2:-}" + case "$command" in + install) + acquire_lock_or_reexec "$@" + install_release "$version" + ;; + *) printf 'usage: erp-update install \n' >&2; exit 2 ;; + esac +} + +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + main "$@" +fi diff --git a/distribution/release-public-key.pem b/distribution/release-public-key.pem new file mode 100644 index 0000000..56abd22 --- /dev/null +++ b/distribution/release-public-key.pem @@ -0,0 +1,3 @@ +-----BEGIN PUBLIC KEY----- +MCowBQYDK2VwAyEAaErhcY8WZIZvPILmYnfjndVBAdOuWkvhaoHIWqNNdxI= +-----END PUBLIC KEY----- diff --git a/docs/online-install-and-update.md b/docs/online-install-and-update.md new file mode 100644 index 0000000..bce65da --- /dev/null +++ b/docs/online-install-and-update.md @@ -0,0 +1,96 @@ +# 在线安装与更新 + +Kaidi ERP 的生产安装不依赖 Docker。安装器支持 64 位 Linux 和 macOS,生产数据库固定为 PostgreSQL 15 或更高版本;生产 JAR 不包含 SQLite 运行库,SQLite 仅保留给源码目录下的本地开发和测试。 + +## 发布链路 + +推送 `v*` Git tag 后,[release.yml](../.gitea/workflows/release.yml) 会完成前端构建、Spring Boot 打包、Ed25519 签名,并在 Gitea 中创建或更新对应 Release。每个可安装 Release 必须包含: + +- `kaidi-erp-.tar.gz` +- `SHA256SUMS` +- `SHA256SUMS.sig` + +Gitea Actions runner 需要预装 Java 17 或更高版本、Node.js/npm、Python 3、tar、curl 和 OpenSSL 3。 + +在仓库 Actions 设置中创建: + +- Secret `RELEASE_GITEA_TOKEN`:具备当前仓库 Release 写权限的 Gitea token。 +- Secret `RELEASE_PRIVATE_KEY_B64`:Ed25519 私钥的单行 Base64 内容。 +- Variable `GITEA_BASE_URL`:生产 Gitea 的 HTTPS 外部地址。 +- Variable `GITEA_ALLOW_INSECURE_HTTP`:生产环境不要设置;当前 HTTP 测试服务器必须显式设为 `1`。 + +本机现有签名私钥位于 `~/.config/kaidi-erp/release-signing-key.pem`,不得提交到 Git。macOS 可用以下命令生成 Secret 值: + +```bash +base64 < ~/.config/kaidi-erp/release-signing-key.pem | tr -d '\n' +``` + +发布稳定版本: + +```bash +git tag v0.2.0 +git push origin v0.2.0 +``` + +## 首次安装 + +推荐给 Gitea 配置 HTTPS 域名,然后执行: + +```bash +curl -fsSL https://git.example.com/awaioi/ERP/raw/branch/main/install.sh \ + | sudo -E bash -s -- \ + --gitea-url https://git.example.com \ + --repository awaioi/ERP +``` + +安装器会从终端读取现有 PostgreSQL 的主机、端口、数据库、用户和密码。通过管道运行时也会直接读取 `/dev/tty`,不会把管道中的脚本内容误当成密码。 + +无人值守安装示例: + +```bash +export ERP_DB_HOST=127.0.0.1 +export ERP_DB_PORT=5432 +export ERP_DB_NAME=kaidi_erp +export ERP_DB_USER=kaidi_erp +export ERP_DB_PASSWORD='replace-with-a-strong-password' +export ERP_DB_SSLMODE=require + +curl -fsSL https://git.example.com/awaioi/ERP/raw/branch/main/install.sh \ + | sudo -E bash -s -- --non-interactive --gitea-url https://git.example.com +``` + +在 apt 系 Linux 上也可以让安装器创建本机 PostgreSQL: + +```bash +curl -fsSL https://git.example.com/awaioi/ERP/raw/branch/main/install.sh \ + | sudo -E bash -s -- --db-mode local --gitea-url https://git.example.com +``` + +当前 `http://38.76.196.225:10099` 仅用于开发测试,必须同时传入 `--allow-insecure`。HTTP 会暴露安装脚本、Release 元数据和 Gitea token,不应作为生产部署方式。 + +## 在线更新 + +管理员进入“应用定制平台 -> 系统更新”,点击“检查更新”,确认版本和 Release notes 后执行更新。后端启动独立更新助手,更新助手会: + +1. 下载三个 Release 资产并验证 Ed25519 签名和 SHA-256。 +2. 拒绝路径穿越、符号链接和结构不完整的安装包。 +3. 可选执行 `pg_dump`,再写入独立版本目录。 +4. 原子切换 `current` 链接并终止旧进程,由 systemd 或 launchd 拉起新版本。 +5. 等待健康检查;失败时切回上一版本并再次验证健康状态。 + +更新过程使用操作系统文件锁,同一安装目录同时只允许一个更新任务。手动触发可执行: + +```bash +/opt/kaidi-erp/current/bin/erp-update install 0.2.0 +``` + +在线更新依赖安装器注册的 systemd 或 launchd 服务来拉起新旧版本。使用 `--no-service` 时后台更新默认关闭;如由其他进程管理器接管,须先确认它会在 ERP 进程退出后自动重启,再手工启用 `OA_UPDATE_ENABLED=true`。健康检查默认最多等待 120 秒、每 2 秒轮询一次,可分别通过 `ERP_UPDATE_HEALTH_TIMEOUT_SECONDS` 和 `ERP_UPDATE_HEALTH_POLL_SECONDS` 调整。 + +Linux 默认目录: + +- 程序:`/opt/kaidi-erp` +- 配置:`/etc/kaidi-erp/erp.env` +- 状态:`/var/lib/kaidi-erp/update-state.json` +- 服务:`kaidi-erp.service` + +应用回滚不等于数据库回滚。发布包含不可逆 Flyway 迁移前,应先保证旧应用仍兼容新结构,并在安装时设置 `ERP_UPDATE_BACKUP_MODE=pg_dump`。数据库恢复仍需人工确认后使用 `pg_restore`,更新助手不会自动覆盖生产数据。 diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..f9cbc0e --- /dev/null +++ b/install.sh @@ -0,0 +1,525 @@ +#!/usr/bin/env bash +set -euo pipefail + +GITEA_BASE_URL="${ERP_GITEA_BASE_URL:-}" +REPOSITORY="${ERP_UPDATE_REPOSITORY:-awaioi/ERP}" +REQUESTED_VERSION="${ERP_INSTALL_VERSION:-}" +INSTALL_ROOT="${ERP_INSTALL_ROOT:-}" +DB_MODE="${ERP_DB_MODE:-existing}" +NON_INTERACTIVE="${ERP_INSTALL_NON_INTERACTIVE:-0}" +ALLOW_INSECURE="${ERP_UPDATE_ALLOW_INSECURE_HTTP:-0}" +NO_SERVICE="${ERP_INSTALL_NO_SERVICE:-0}" +TOKEN="${ERP_GITEA_TOKEN:-${OA_UPDATE_TOKEN:-}}" +PUBLIC_KEY='-----BEGIN PUBLIC KEY----- +MCowBQYDK2VwAyEAaErhcY8WZIZvPILmYnfjndVBAdOuWkvhaoHIWqNNdxI= +-----END PUBLIC KEY-----' +TMP_DIR="" + +say() { printf '[ERP Install] %s\n' "$*"; } +fail() { printf '[ERP Install] ERROR: %s\n' "$*" >&2; exit 1; } + +usage() { + cat <<'EOF' +Usage: install.sh [options] + --gitea-url URL Gitea public base URL + --repository O/R Release repository + --version VERSION Install one exact release + --install-root PATH Override installation directory + --db-mode MODE existing or local (local is Linux only) + --non-interactive Read all database values from ERP_DB_* variables + --allow-insecure Development only: allow plain HTTP release URLs + --no-service Install files without registering/starting a service +EOF +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --gitea-url) [[ $# -ge 2 ]] || fail '--gitea-url requires a value'; GITEA_BASE_URL="$2"; shift 2 ;; + --repository) [[ $# -ge 2 ]] || fail '--repository requires a value'; REPOSITORY="$2"; shift 2 ;; + --version) [[ $# -ge 2 ]] || fail '--version requires a value'; REQUESTED_VERSION="$2"; shift 2 ;; + --install-root) [[ $# -ge 2 ]] || fail '--install-root requires a value'; INSTALL_ROOT="$2"; shift 2 ;; + --db-mode) [[ $# -ge 2 ]] || fail '--db-mode requires a value'; DB_MODE="$2"; shift 2 ;; + --non-interactive) NON_INTERACTIVE=1; shift ;; + --allow-insecure) ALLOW_INSECURE=1; shift ;; + --no-service) NO_SERVICE=1; shift ;; + -h|--help) usage; exit 0 ;; + *) fail "unknown option: $1" ;; + esac +done + +cleanup() { + if [[ -n "$TMP_DIR" && -d "$TMP_DIR" ]]; then + rm -rf "$TMP_DIR" + fi +} +trap cleanup EXIT + +require_command() { + command -v "$1" >/dev/null 2>&1 || fail "missing command: $1" +} + +detect_platform() { + case "$(uname -s)" in + Linux) PLATFORM=linux ;; + Darwin) PLATFORM=darwin ;; + *) fail "unsupported operating system: $(uname -s)" ;; + esac + case "$(uname -m)" in + x86_64|amd64) ARCH=amd64 ;; + arm64|aarch64) ARCH=arm64 ;; + *) fail "unsupported CPU architecture: $(uname -m); 32-bit systems are not supported" ;; + esac + if [[ "$PLATFORM" == "linux" && "$(id -u)" != "0" ]]; then + fail 'Linux installation requires root; use: curl ... | sudo -E bash' + fi +} + +install_dependencies() { + if [[ "$PLATFORM" == "darwin" ]] && command -v brew >/dev/null 2>&1; then + local java_prefix="" libpq_prefix="" openssl_prefix="" + java_prefix="$(brew --prefix openjdk@17 2>/dev/null || true)" + libpq_prefix="$(brew --prefix libpq 2>/dev/null || true)" + openssl_prefix="$(brew --prefix openssl@3 2>/dev/null || true)" + [[ -z "$java_prefix" ]] || export PATH="$java_prefix/bin:$PATH" + [[ -z "$libpq_prefix" ]] || export PATH="$libpq_prefix/bin:$PATH" + [[ -z "$openssl_prefix" ]] || export PATH="$openssl_prefix/bin:$PATH" + fi + local need=0 + for command in curl tar python3 psql openssl java; do + command -v "$command" >/dev/null 2>&1 || need=1 + done + if [[ "$need" == "1" && "$PLATFORM" == "linux" ]]; then + command -v apt-get >/dev/null 2>&1 || fail 'automatic dependency installation currently supports apt-based Linux only' + say 'Installing runtime dependencies...' + export DEBIAN_FRONTEND=noninteractive + apt-get update + apt-get install -y ca-certificates curl tar python3 openssl openjdk-17-jre-headless postgresql-client + elif [[ "$need" == "1" ]]; then + command -v brew >/dev/null 2>&1 || fail 'Homebrew is required to install missing macOS dependencies' + say 'Installing runtime dependencies...' + brew install openjdk@17 libpq openssl@3 + export PATH="$(brew --prefix openjdk@17)/bin:$(brew --prefix libpq)/bin:$(brew --prefix openssl@3)/bin:$PATH" + fi + for command in curl tar python3 psql openssl java; do require_command "$command"; done + local java_major + java_major="$(java -version 2>&1 | awk -F'[".]' '/version/ {print $2; exit}')" + [[ "$java_major" =~ ^[0-9]+$ && "$java_major" -ge 17 ]] || fail 'Java 17 or newer is required' + local openssl_version algorithms + openssl_version="$(openssl version 2>/dev/null || true)" + [[ "$openssl_version" =~ ^OpenSSL[[:space:]]3\. ]] \ + || fail 'OpenSSL 3 with Ed25519 support is required' + algorithms="$(openssl list -public-key-algorithms 2>/dev/null || true)" + grep -qi ED25519 <<< "$algorithms" \ + || fail 'OpenSSL 3 with Ed25519 support is required' +} + +validate_https_url() { + case "$1" in + https://*) return 0 ;; + http://*) [[ "$ALLOW_INSECURE" == "1" || "$ALLOW_INSECURE" == "true" ]] && return 0 ;; + esac + fail 'release server must use HTTPS (use --allow-insecure only for local development)' +} + +prompt_value() { + local variable="$1" label="$2" default="$3" secret="${4:-0}" value="${!variable:-}" + if [[ -z "$value" && "$NON_INTERACTIVE" != "1" ]]; then + [[ -r /dev/tty && -w /dev/tty ]] \ + || fail "cannot prompt for $label; use --non-interactive with ERP_DB_* variables" + if [[ "$secret" == "1" ]]; then + IFS= read -r -s -p "$label: " value /dev/tty + else + IFS= read -r -p "$label [$default]: " value /dev/null 2>&1; then + runuser -u postgres -- psql "$@" + elif command -v sudo >/dev/null 2>&1; then + sudo -u postgres -- psql "$@" + else + fail 'cannot switch to the postgres operating-system user (runuser or sudo is required)' + fi +} + +configure_local_postgres() { + [[ "$PLATFORM" == "linux" ]] || fail 'automatic local PostgreSQL provisioning is currently Linux-only' + command -v apt-get >/dev/null 2>&1 || fail 'local PostgreSQL provisioning requires apt' + require_command systemctl + apt-get update + apt-get install -y postgresql postgresql-contrib + systemctl enable --now postgresql + DB_HOST=127.0.0.1 + DB_PORT=5432 + DB_NAME="${ERP_DB_NAME:-kaidi_erp}" + DB_USER="${ERP_DB_USER:-kaidi_erp}" + DB_PASSWORD="${ERP_DB_PASSWORD:-}" + if [[ -z "$DB_PASSWORD" ]]; then + DB_PASSWORD="$(openssl rand -hex 24)" || fail 'unable to generate a PostgreSQL password' + fi + DB_SSLMODE=disable + [[ "$DB_NAME" =~ ^[A-Za-z_][A-Za-z0-9_-]*$ ]] || fail 'invalid local database name' + [[ "$DB_USER" =~ ^[A-Za-z_][A-Za-z0-9_-]*$ ]] || fail 'invalid local database user' + run_as_postgres -v ON_ERROR_STOP=1 -v role="$DB_USER" -v password="$DB_PASSWORD" <<'SQL' +SELECT format('CREATE ROLE %I LOGIN PASSWORD %L', :'role', :'password') +WHERE NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = :'role') \gexec +SELECT format('ALTER ROLE %I LOGIN PASSWORD %L', :'role', :'password') \gexec +SQL + run_as_postgres -v ON_ERROR_STOP=1 -v db="$DB_NAME" -v role="$DB_USER" <<'SQL' +SELECT format('CREATE DATABASE %I OWNER %I', :'db', :'role') +WHERE NOT EXISTS (SELECT 1 FROM pg_database WHERE datname = :'db') \gexec +SQL +} + +configure_existing_postgres() { + prompt_value DB_HOST 'PostgreSQL host' "${ERP_DB_HOST:-127.0.0.1}" + prompt_value DB_PORT 'PostgreSQL port' "${ERP_DB_PORT:-5432}" + prompt_value DB_NAME 'Database name' "${ERP_DB_NAME:-kaidi_erp}" + prompt_value DB_USER 'Database user' "${ERP_DB_USER:-kaidi_erp}" + prompt_value DB_PASSWORD 'Database password' "${ERP_DB_PASSWORD:-}" 1 + prompt_value DB_SSLMODE 'PostgreSQL SSL mode' "${ERP_DB_SSLMODE:-prefer}" + [[ -n "$DB_PASSWORD" ]] || fail 'database password is required' +} + +validate_postgres() { + [[ "$DB_HOST" != *[[:space:]]* && "$DB_PORT" =~ ^[0-9]+$ ]] || fail 'invalid PostgreSQL host or port' + [[ "$DB_NAME" =~ ^[A-Za-z_][A-Za-z0-9_-]*$ ]] || fail 'invalid database name' + [[ "$DB_USER" =~ ^[A-Za-z_][A-Za-z0-9_.-]*$ ]] || fail 'invalid database user' + case "$DB_SSLMODE" in disable|allow|prefer|require|verify-ca|verify-full) ;; *) fail 'invalid PostgreSQL SSL mode' ;; esac + local version + version="$(PGPASSWORD="$DB_PASSWORD" PGSSLMODE="$DB_SSLMODE" psql \ + -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -Atqc \ + "select current_setting('server_version_num')::int")" \ + || fail 'cannot connect to PostgreSQL with the supplied credentials' + [[ "$version" =~ ^[0-9]+$ && "$version" -ge 150000 ]] || fail 'PostgreSQL 15 or newer is required' + PGPASSWORD="$DB_PASSWORD" PGSSLMODE="$DB_SSLMODE" psql \ + -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -v ON_ERROR_STOP=1 \ + -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm' >/dev/null \ + || fail 'database user cannot install the required pg_trgm extension' + say "PostgreSQL connection verified (${version:0:2})" +} + +create_curl_config() { + CURL_CONFIG="$TMP_DIR/curl.conf" + { + printf 'silent\nshow-error\nfail\nlocation\nconnect-timeout = 15\nmax-time = 900\n' + if [[ "$ALLOW_INSECURE" == "1" || "$ALLOW_INSECURE" == "true" ]]; then + printf 'proto = "=http,https"\nproto-redir = "=http,https"\n' + else + printf 'proto = "=https"\nproto-redir = "=https"\n' + fi + if [[ -n "$TOKEN" ]]; then + [[ "$TOKEN" =~ ^[A-Za-z0-9._-]+$ ]] || fail 'invalid Gitea token format' + printf 'header = "Authorization: token %s"\n' "$TOKEN" + fi + } > "$CURL_CONFIG" + chmod 600 "$CURL_CONFIG" +} + +download() { + validate_https_url "$1" + curl --config "$CURL_CONFIG" --output "$2" "$1" +} + +download_release() { + [[ "$REPOSITORY" =~ ^[^/[:space:]]+/[^/[:space:]]+$ ]] || fail 'invalid Gitea repository' + local owner="${REPOSITORY%%/*}" repo="${REPOSITORY#*/}" + local release_json="$TMP_DIR/release.json" + download "${GITEA_BASE_URL%/}/api/v1/repos/$owner/$repo/releases/latest" "$release_json" \ + || fail 'unable to read latest Gitea Release' + local selection="$TMP_DIR/selection" + local selection_error="$TMP_DIR/selection-error" + if ! python3 - "$release_json" "$REQUESTED_VERSION" > "$selection" 2> "$selection_error" <<'PY' +import json, re, sys +try: + with open(sys.argv[1], encoding="utf-8") as handle: + release = json.load(handle) +except (OSError, json.JSONDecodeError): + raise SystemExit("invalid release JSON") +tag = str(release.get("tag_name") or "").strip() +match = re.fullmatch(r"v?(\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?)", tag) +if not match or release.get("draft") or release.get("prerelease"): + raise SystemExit("invalid stable release") +version = match.group(1) +if "-" in version.split("+", 1)[0]: + raise SystemExit("prerelease rejected by stable installer") +requested = sys.argv[2].removeprefix("v") +if requested and requested != version: + raise SystemExit("requested version does not match latest release") +assets = {str(a.get("name")): str(a.get("browser_download_url") or "") for a in release.get("assets", [])} +names = [f"kaidi-erp-{version}.tar.gz", "SHA256SUMS", "SHA256SUMS.sig"] +urls = [assets.get(name, "") for name in names] +if any(not url or any(ch.isspace() for ch in url) for url in urls): + raise SystemExit("release assets missing") +print("\t".join([version, *urls])) +PY + then + local reason="invalid Release metadata" + [[ ! -s "$selection_error" ]] || reason="$(<"$selection_error")" + fail "$reason" + fi + local archive_url sums_url signature_url + IFS=$'\t' read -r VERSION archive_url sums_url signature_url < "$selection" + ARCHIVE_NAME="kaidi-erp-${VERSION}.tar.gz" + ARCHIVE_PATH="$TMP_DIR/$ARCHIVE_NAME" + download "$archive_url" "$ARCHIVE_PATH" + download "$sums_url" "$TMP_DIR/SHA256SUMS" + download "$signature_url" "$TMP_DIR/SHA256SUMS.sig" +} + +verify_release() { + printf '%s\n' "$PUBLIC_KEY" > "$TMP_DIR/release-public-key.pem" + openssl pkeyutl -verify -rawin -pubin -inkey "$TMP_DIR/release-public-key.pem" \ + -sigfile "$TMP_DIR/SHA256SUMS.sig" -in "$TMP_DIR/SHA256SUMS" >/dev/null \ + || fail 'Release Ed25519 signature verification failed' + local expected actual + expected="$(python3 - "$TMP_DIR/SHA256SUMS" "$ARCHIVE_NAME" <<'PY' +import re, sys +for line in open(sys.argv[1], encoding="utf-8"): + m = re.fullmatch(r"([0-9a-fA-F]{64})\s+\*?(.+?)\s*", line) + if m and m.group(2) == sys.argv[2]: + print(m.group(1).lower()) + break +PY +)" + [[ "$expected" =~ ^[0-9a-f]{64}$ ]] || fail 'release checksum is missing' + if command -v sha256sum >/dev/null 2>&1; then + actual="$(sha256sum "$ARCHIVE_PATH" | awk '{print $1}')" + else + actual="$(shasum -a 256 "$ARCHIVE_PATH" | awk '{print $1}')" + fi + [[ "$actual" == "$expected" ]] || fail 'release checksum verification failed' + python3 - "$ARCHIVE_PATH" <<'PY' +import pathlib, sys, tarfile +with tarfile.open(sys.argv[1], "r:gz") as archive: + for item in archive.getmembers(): + path = pathlib.PurePosixPath(item.name) + if path.is_absolute() or ".." in path.parts or item.issym() or item.islnk(): + raise SystemExit(f"unsafe archive member: {item.name}") +PY +} + +shell_setting() { + printf '%s=' "$1" + printf '%q\n' "$2" +} + +prepare_layout() { + if [[ "$PLATFORM" == "linux" ]]; then + ERP_USER="${ERP_SERVICE_USER:-kaidi-erp}" + ERP_GROUP="$ERP_USER" + id "$ERP_USER" >/dev/null 2>&1 || useradd --system --home-dir "$INSTALL_ROOT" --shell /usr/sbin/nologin "$ERP_USER" + CONFIG_ROOT="${ERP_CONFIG_ROOT:-/etc/kaidi-erp}" + STATE_ROOT="${ERP_STATE_ROOT:-/var/lib/kaidi-erp}" + LOG_ROOT="${ERP_LOG_ROOT:-/var/log/kaidi-erp}" + local path + for path in "$INSTALL_ROOT" "$CONFIG_ROOT" "$STATE_ROOT" "$LOG_ROOT"; do + [[ "$path" =~ ^/[A-Za-z0-9._/@:+-]+$ ]] \ + || fail "Linux installation paths must be absolute and contain only safe characters: $path" + done + [[ "$ERP_USER" =~ ^[a-z_][a-z0-9_-]*[$]?$ ]] || fail 'invalid Linux service user name' + else + ERP_USER="$(id -un)" + ERP_GROUP="$(id -gn)" + CONFIG_ROOT="${ERP_CONFIG_ROOT:-$INSTALL_ROOT/config}" + STATE_ROOT="${ERP_STATE_ROOT:-$INSTALL_ROOT/state}" + LOG_ROOT="${ERP_LOG_ROOT:-$HOME/Library/Logs/KaidiERP}" + fi + mkdir -p "$INSTALL_ROOT/releases" "$INSTALL_ROOT/run" "$INSTALL_ROOT/backups" \ + "$CONFIG_ROOT" "$STATE_ROOT" "$LOG_ROOT" + if [[ "$PLATFORM" == "linux" ]]; then + chown -R "$ERP_USER:$ERP_GROUP" "$INSTALL_ROOT" "$STATE_ROOT" "$LOG_ROOT" + fi +} + +install_release_files() { + local unpack="$TMP_DIR/unpack" + mkdir -p "$unpack" + tar -xzf "$ARCHIVE_PATH" -C "$unpack" + local source="$unpack/kaidi-erp-${VERSION}" + [[ -r "$source/app/kaidi-erp.jar" && -x "$source/bin/erp-run" && -x "$source/bin/erp-update" ]] \ + || fail 'release archive is incomplete' + [[ "$(<"$source/VERSION")" == "$VERSION" ]] || fail 'release archive version mismatch' + local destination="$INSTALL_ROOT/releases/$VERSION" + local replaced="" + if [[ -e "$destination" ]]; then + replaced="${destination}.replaced-$$" + mv "$destination" "$replaced" + fi + if ! mv "$source" "$destination"; then + [[ -z "$replaced" || ! -e "$replaced" ]] || mv "$replaced" "$destination" + fail 'unable to write the release directory' + fi + [[ -z "$replaced" ]] || rm -rf "$replaced" + python3 - "$INSTALL_ROOT/current" "releases/$VERSION" <<'PY' +import os, sys +link, target = sys.argv[1:] +tmp = f"{link}.new-{os.getpid()}" +try: + os.symlink(target, tmp) + os.replace(tmp, link) +finally: + if os.path.lexists(tmp): os.unlink(tmp) +PY + if [[ "$PLATFORM" == "linux" ]]; then + chown -R "$ERP_USER:$ERP_GROUP" "$destination" "$INSTALL_ROOT/current" + fi +} + +write_configuration() { + CONFIG_FILE="$CONFIG_ROOT/erp.env" + PUBLIC_KEY_FILE="$CONFIG_ROOT/release-public-key.pem" + local update_enabled=true + [[ "$NO_SERVICE" != "1" ]] || update_enabled=false + printf '%s\n' "$PUBLIC_KEY" > "$PUBLIC_KEY_FILE" + { + shell_setting ERP_INSTALL_ROOT "$INSTALL_ROOT" + shell_setting ERP_CONFIG_FILE "$CONFIG_FILE" + shell_setting ERP_RUN_DIR "$INSTALL_ROOT/run" + shell_setting ERP_STATE_FILE "$STATE_ROOT/update-state.json" + shell_setting ERP_HEALTH_URL "http://127.0.0.1:${ERP_SERVER_PORT:-8091}/api/oa/health" + shell_setting ERP_UPDATE_PUBLIC_KEY_FILE "$PUBLIC_KEY_FILE" + shell_setting ERP_UPDATE_REQUIRE_SIGNATURE true + shell_setting ERP_UPDATE_BACKUP_MODE "${ERP_UPDATE_BACKUP_MODE:-none}" + shell_setting ERP_UPDATE_HEALTH_TIMEOUT_SECONDS "${ERP_UPDATE_HEALTH_TIMEOUT_SECONDS:-120}" + shell_setting ERP_UPDATE_HEALTH_POLL_SECONDS "${ERP_UPDATE_HEALTH_POLL_SECONDS:-2}" + shell_setting ERP_PGHOST "$DB_HOST" + shell_setting ERP_PGPORT "$DB_PORT" + shell_setting ERP_PGDATABASE "$DB_NAME" + shell_setting ERP_PGSSLMODE "$DB_SSLMODE" + shell_setting SPRING_PROFILES_ACTIVE postgres + shell_setting SERVER_PORT "${ERP_SERVER_PORT:-8091}" + shell_setting OA_DB_URL "jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=${DB_SSLMODE}" + shell_setting OA_DB_USERNAME "$DB_USER" + shell_setting OA_DB_PASSWORD "$DB_PASSWORD" + shell_setting OA_UPDATE_ENABLED "$update_enabled" + shell_setting OA_UPDATE_GITEA_BASE_URL "$GITEA_BASE_URL" + shell_setting OA_UPDATE_REPOSITORY "$REPOSITORY" + shell_setting OA_UPDATE_CHANNEL stable + shell_setting OA_UPDATE_TOKEN "$TOKEN" + shell_setting OA_UPDATE_HELPER_COMMAND "$INSTALL_ROOT/current/bin/erp-update" + shell_setting OA_UPDATE_STATE_FILE "$STATE_ROOT/update-state.json" + shell_setting OA_UPDATE_ALLOW_INSECURE_HTTP "$ALLOW_INSECURE" + } > "$CONFIG_FILE" + if [[ "$PLATFORM" == "linux" ]]; then + chown root:"$ERP_GROUP" "$CONFIG_FILE" "$PUBLIC_KEY_FILE" + chmod 640 "$CONFIG_FILE" "$PUBLIC_KEY_FILE" + else + chmod 600 "$CONFIG_FILE" "$PUBLIC_KEY_FILE" + fi +} + +install_service() { + [[ "$NO_SERVICE" == "1" ]] && return 0 + if [[ "$PLATFORM" == "linux" ]]; then + cat > /etc/systemd/system/kaidi-erp.service </dev/null 2>&1 || true + launchctl bootstrap "gui/$(id -u)" "$plist" + fi +} + +wait_for_health() { + [[ "$NO_SERVICE" == "1" ]] && return 0 + local url="http://127.0.0.1:${ERP_SERVER_PORT:-8091}/api/oa/health" deadline=$((SECONDS + 120)) + while (( SECONDS < deadline )); do + if curl -fsS --connect-timeout 2 --max-time 5 "$url" >/dev/null 2>&1; then + return 0 + fi + sleep 2 + done + fail 'ERP service did not become healthy within 120 seconds' +} + +main() { + detect_platform + if [[ -z "$INSTALL_ROOT" ]]; then + if [[ "$PLATFORM" == "linux" ]]; then + INSTALL_ROOT=/opt/kaidi-erp + else + INSTALL_ROOT="$HOME/Library/Application Support/KaidiERP" + fi + fi + [[ -n "$GITEA_BASE_URL" ]] || fail 'Gitea URL is required; use --gitea-url or ERP_GITEA_BASE_URL' + validate_https_url "$GITEA_BASE_URL" + install_dependencies + case "$DB_MODE" in + existing) configure_existing_postgres ;; + local) configure_local_postgres ;; + *) fail 'db mode must be existing or local' ;; + esac + validate_postgres + TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/kaidi-erp-install.XXXXXX")" + create_curl_config + say 'Downloading signed release...' + download_release + verify_release + prepare_layout + install_release_files + write_configuration + install_service + wait_for_health + say "Installed Kaidi ERP $VERSION" + say "Local URL: http://127.0.0.1:${ERP_SERVER_PORT:-8091}" +} + +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + main "$@" +fi diff --git a/oa-backend/build.gradle b/oa-backend/build.gradle index 150e7a2..6863e5e 100644 --- a/oa-backend/build.gradle +++ b/oa-backend/build.gradle @@ -5,7 +5,12 @@ plugins { } group = 'com.kaidi' -version = '0.1.0' +version = providers.gradleProperty('releaseVersion') + .orElse(System.getenv('ERP_RELEASE_VERSION') ?: '0.1.0') + .get() +def productionBuild = providers.gradleProperty('productionBuild') + .map { it.toBoolean() } + .orElse(false) java { sourceCompatibility = JavaVersion.VERSION_17 @@ -23,10 +28,17 @@ dependencies { // Real-time collaboration (yjs CRDT relay) over WebSocket. implementation 'org.springframework.boot:spring-boot-starter-websocket' - // SQLite driver + Hibernate community dialects (SQLite dialect lives here). - // Version of hibernate-community-dialects is governed by Spring Boot's BOM. - runtimeOnly 'org.xerial:sqlite-jdbc:3.45.3.0' - implementation 'org.hibernate.orm:hibernate-community-dialects' + // Production database and versioned schema migrations. + implementation 'org.flywaydb:flyway-core:10.22.0' + runtimeOnly 'org.flywaydb:flyway-database-postgresql:10.22.0' + runtimeOnly 'org.postgresql:postgresql' + + // SQLite remains available to source-tree development and tests, but is + // deliberately absent from PostgreSQL-only production release artifacts. + if (!productionBuild.get()) { + runtimeOnly 'org.xerial:sqlite-jdbc:3.45.3.0' + runtimeOnly 'org.hibernate.orm:hibernate-community-dialects' + } // jackson-databind arrives transitively via starter-web; declared for clarity. implementation 'com.fasterxml.jackson.core:jackson-databind' @@ -41,3 +53,7 @@ dependencies { tasks.named('test') { useJUnitPlatform() } + +springBoot { + buildInfo() +} diff --git a/oa-backend/src/main/java/com/kaidi/oa/config/AuthInterceptor.java b/oa-backend/src/main/java/com/kaidi/oa/config/AuthInterceptor.java index 92a255f..afdbe1b 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/config/AuthInterceptor.java +++ b/oa-backend/src/main/java/com/kaidi/oa/config/AuthInterceptor.java @@ -36,7 +36,8 @@ public class AuthInterceptor implements HandlerInterceptor { private static final Set PUBLIC = Set.of( "/api/oa/auth/login", "/api/oa/auth/session", - "/api/oa/auth/logout" + "/api/oa/auth/logout", + "/api/oa/health" ); /** 写操作方法(只有这些方法才触发授权门槛;GET/HEAD 等读操作不限制)。 */ @@ -44,6 +45,7 @@ public class AuthInterceptor implements HandlerInterceptor { private static final Set ADMIN = Set.of("ADMIN"); private static final Set APPROVER_OR_ADMIN = Set.of("ADMIN", "APPROVER"); + private static final List ADMIN_READ_PREFIXES = List.of("/api/oa/system-update"); /** * 系统 / 组织 / 权限 / 配置 类写接口 → 仅 ADMIN。 @@ -51,6 +53,7 @@ public class AuthInterceptor implements HandlerInterceptor { */ private static final List ADMIN_PREFIXES = List.of( "/api/oa/users", "/api/oa/depts", "/api/oa/roles", "/api/oa/settings", + "/api/oa/system-update", "/api/oa/delegations", "/api/oa/form-templates", "/api/oa/declaration-templates", "/api/oa/contract-templates", "/api/oa/report-definitions", "/api/oa/crawl-sources", // 全文索引重建(POST /search/reindex)是全库重活,仅 ADMIN 可触发(杜绝任意角色发起整库扫描)。 @@ -432,6 +435,10 @@ public class AuthInterceptor implements HandlerInterceptor { return false; } } else { + if (matchesPrefix(path, ADMIN_READ_PREFIXES) && ADMIN.stream().noneMatch(have::contains)) { + writeError(response, HttpStatus.FORBIDDEN, 403, "无权限:系统更新仅限 ADMIN 角色"); + return false; + } // 读:机密财务/PII 读口需 ADMIN/APPROVER,其余业务读维持"已登录且有角色"可读。 if (isSensitiveRead(path) && APPROVER_OR_ADMIN.stream().noneMatch(have::contains)) { writeError(response, HttpStatus.FORBIDDEN, 403, "无权限:该数据需要 ADMIN/APPROVER 角色"); @@ -441,6 +448,15 @@ public class AuthInterceptor implements HandlerInterceptor { return true; } + private static boolean matchesPrefix(String path, List prefixes) { + for (String prefix : prefixes) { + if (path.equals(prefix) || path.startsWith(prefix + "/")) { + return true; + } + } + return false; + } + private static boolean isSensitiveRead(String path) { // 研发证据链聚合端点 /api/oa/rd-projects/{id}/evidence-chain 会端出研发费用金额/凭证号/申报/专利 // 等本应被 rd-expenses 读门槛拦下的明细(基路径 rd-projects 非敏感,故按后缀精确收口, diff --git a/oa-backend/src/main/java/com/kaidi/oa/config/UpdateProperties.java b/oa-backend/src/main/java/com/kaidi/oa/config/UpdateProperties.java new file mode 100644 index 0000000..1c9e6f1 --- /dev/null +++ b/oa-backend/src/main/java/com/kaidi/oa/config/UpdateProperties.java @@ -0,0 +1,92 @@ +package com.kaidi.oa.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** Runtime configuration for the Gitea release updater. */ +@Component +@ConfigurationProperties(prefix = "oa.update") +public class UpdateProperties { + + private boolean enabled; + private String giteaBaseUrl = ""; + private String repository = "awaioi/ERP"; + private String channel = "stable"; + private String token = ""; + private String helperCommand = ""; + private String stateFile = "./runtime/update-state.json"; + private boolean allowInsecureHttp; + private int requestTimeoutSeconds = 15; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public String getGiteaBaseUrl() { + return giteaBaseUrl; + } + + public void setGiteaBaseUrl(String giteaBaseUrl) { + this.giteaBaseUrl = giteaBaseUrl; + } + + public String getRepository() { + return repository; + } + + public void setRepository(String repository) { + this.repository = repository; + } + + public String getChannel() { + return channel; + } + + public void setChannel(String channel) { + this.channel = channel; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getHelperCommand() { + return helperCommand; + } + + public void setHelperCommand(String helperCommand) { + this.helperCommand = helperCommand; + } + + public String getStateFile() { + return stateFile; + } + + public void setStateFile(String stateFile) { + this.stateFile = stateFile; + } + + public boolean isAllowInsecureHttp() { + return allowInsecureHttp; + } + + public void setAllowInsecureHttp(boolean allowInsecureHttp) { + this.allowInsecureHttp = allowInsecureHttp; + } + + public int getRequestTimeoutSeconds() { + return requestTimeoutSeconds; + } + + public void setRequestTimeoutSeconds(int requestTimeoutSeconds) { + this.requestTimeoutSeconds = requestTimeoutSeconds; + } +} diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Announcement.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Announcement.java index 7f2caa3..e9a31d2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Announcement.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Announcement.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -24,7 +23,6 @@ public class Announcement { private String title; - @Lob @Column(columnDefinition = "TEXT") private String content; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/AnnualReport.java b/oa-backend/src/main/java/com/kaidi/oa/domain/AnnualReport.java index 27cbf6d..73b696c 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/AnnualReport.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/AnnualReport.java @@ -7,7 +7,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -91,18 +91,18 @@ public class AnnualReport { // ---------- 扩展填报字段(模板化,各类年报共享) ---------- /** 关键指标描述(校验摘要/主要指标文字汇总)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String keyIndicatorSummary; /** 数据一致性校验结果(自动校验后填入,如"研发费用占比符合要求")。 */ - @Lob + @Column(columnDefinition = "TEXT") private String validationResult; /** 校验是否通过:true 全部通过,false 有警告或错误。 */ private Boolean validationPassed; /** 备注/填报说明。 */ - @Lob + @Column(columnDefinition = "TEXT") private String remark; /** 填报负责人。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Blog.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Blog.java index e217b88..015c6c9 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Blog.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Blog.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; /** 博客文章(知识社区 - 我的博客)。tags 为逗号分隔。 */ @@ -22,7 +21,6 @@ public class Blog { @Column(length = 2000) private String summary; - @Lob @Column(columnDefinition = "TEXT") private String body; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/ChronicleEvent.java b/oa-backend/src/main/java/com/kaidi/oa/domain/ChronicleEvent.java index 7c5c59e..df86410 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/ChronicleEvent.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/ChronicleEvent.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -30,7 +30,7 @@ public class ChronicleEvent { private String category; - @Lob + @Column(columnDefinition = "TEXT") private String description; /** 关联文档/单据(逗号分隔的引用,如 IP-2026-0001 / 合同号 / 文件名)。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDoc.java b/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDoc.java index b488aad..7321f02 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDoc.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDoc.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -33,19 +32,16 @@ public class CollabDoc { private String status; - @Lob @Column(columnDefinition = "TEXT") private String content; private Instant updatedAt; /** 历史版本 JSON 数组:[{version, content, savedAt, editor}]。每次更新正文前追加上一版。 */ - @Lob @Column(columnDefinition = "TEXT") private String versionsJson; /** 评论/批注 JSON 数组:[{author, content, createdAt}]。 */ - @Lob @Column(columnDefinition = "TEXT") private String commentsJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDocUpdate.java b/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDocUpdate.java index 2098c92..27cf144 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDocUpdate.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/CollabDocUpdate.java @@ -6,8 +6,9 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Index; -import jakarta.persistence.Lob; import jakarta.persistence.Table; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; import java.time.Instant; @@ -34,8 +35,9 @@ public class CollabDocUpdate { /** Monotonic per-document ordering (assigned at append time). */ private Long seq; - /** Raw yjs update bytes. Plain byte[] (NOT @Lob): SQLite JDBC can't read @Lob blobs; getBytes() works. */ - @Column(name = "data", columnDefinition = "BLOB") + /** Raw yjs bytes mapped to SQLite BLOB and PostgreSQL bytea. */ + @JdbcTypeCode(SqlTypes.LONGVARBINARY) + @Column(name = "data", length = Integer.MAX_VALUE) private byte[] data; private Instant createdAt; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/CompetitorIp.java b/oa-backend/src/main/java/com/kaidi/oa/domain/CompetitorIp.java index 0026fd1..2e6e80a 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/CompetitorIp.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/CompetitorIp.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -40,7 +40,7 @@ public class CompetitorIp { private String publicDate; - @Lob + @Column(columnDefinition = "TEXT") private String summary; /** 录入来源:手动 / API导入。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/ComplianceRiskReport.java b/oa-backend/src/main/java/com/kaidi/oa/domain/ComplianceRiskReport.java index 225a222..5516b9f 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/ComplianceRiskReport.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/ComplianceRiskReport.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -61,13 +60,11 @@ public class ComplianceRiskReport { private int findingCount; /** 漏洞明细文本(可存 JSON 格式)。 */ - @Lob - @Column(name = "findings_text") + @Column(name = "findings_text", columnDefinition = "TEXT") private String findings; /** 整改建议。 */ - @Lob - @Column(name = "suggestion_text") + @Column(name = "suggestion_text", columnDefinition = "TEXT") private String suggestion; /** 报告生成人。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/ContentPieceVersion.java b/oa-backend/src/main/java/com/kaidi/oa/domain/ContentPieceVersion.java index b970862..9975bb8 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/ContentPieceVersion.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/ContentPieceVersion.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -46,8 +45,7 @@ public class ContentPieceVersion { private String titleSnapshot; /** 正文快照(完整内容,用于 diff 对比)。 */ - @Lob - @Column(name = "body_snapshot") + @Column(name = "body_snapshot", columnDefinition = "TEXT") private String bodySnapshot; private Instant createdAt; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/ContractTemplate.java b/oa-backend/src/main/java/com/kaidi/oa/domain/ContractTemplate.java index b3f3b1b..203d767 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/ContractTemplate.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/ContractTemplate.java @@ -4,7 +4,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; import java.time.Instant; @@ -31,7 +31,7 @@ public class ContractTemplate { private String applicableSubject; - @Lob + @Column(columnDefinition = "TEXT") private String bodyTemplate; private String requiredClauses; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/DeclarationTemplate.java b/oa-backend/src/main/java/com/kaidi/oa/domain/DeclarationTemplate.java index ccb5eab..a3a0d59 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/DeclarationTemplate.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/DeclarationTemplate.java @@ -4,7 +4,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; import java.time.Instant; @@ -36,7 +36,7 @@ public class DeclarationTemplate { private String autoCheckRules; - @Lob + @Column(columnDefinition = "TEXT") private String bodyTemplate; private String version; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Discussion.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Discussion.java index c617009..cc3e845 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Discussion.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Discussion.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -28,7 +27,6 @@ public class Discussion { private String category; - @Lob @Column(columnDefinition = "TEXT") private String content; @@ -37,7 +35,6 @@ public class Discussion { private Instant createdAt; /** 回帖列表 JSON 数组:[{author, content, createdAt}]。 */ - @Lob @Column(columnDefinition = "TEXT") private String repliesJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Feed.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Feed.java index 455ff01..c8a7aac 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Feed.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Feed.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; /** 享空间动态(文化建设 - 分享流)。tags 为逗号分隔。 */ @@ -24,7 +23,6 @@ public class Feed { /** 动态 / 分享 / 图片 / 打卡 */ private String type; - @Lob @Column(columnDefinition = "TEXT") private String content; @@ -37,7 +35,6 @@ public class Feed { private int comments; /** 评论正文列表 [{author,content,createdAt}] 的 JSON。 */ - @Lob @Column(columnDefinition = "TEXT") private String commentsJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/FertProductQc.java b/oa-backend/src/main/java/com/kaidi/oa/domain/FertProductQc.java index bcc5ae5..528dcce 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/FertProductQc.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/FertProductQc.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -39,12 +38,10 @@ public class FertProductQc { private String standardCode; /** 实测值 JSON:{"有机质":45.2,"水分":28.1,...}(键=indicator)。 */ - @Lob @Column(columnDefinition = "text") private String itemsJson; /** 逐项判定明细 JSON(自动生成的报告口径)。 */ - @Lob @Column(columnDefinition = "text") private String judgeJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/FertSupplierProfile.java b/oa-backend/src/main/java/com/kaidi/oa/domain/FertSupplierProfile.java index 66e1cf2..ad79dc3 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/FertSupplierProfile.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/FertSupplierProfile.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -68,7 +67,6 @@ public class FertSupplierProfile { private String licenseDoc; /** 补充资质 JSON(扩展字段 {"有机认证":"有","产品标准":"QB/T xxxx",...})。 */ - @Lob @Column(columnDefinition = "text") private String admitDocsJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Financing.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Financing.java index 51100f3..012ac24 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Financing.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Financing.java @@ -42,7 +42,7 @@ public class Financing { private String currency; /** 年化利率(百分比,如 4.35 表示 4.35%)。 */ - private Double rate; + private BigDecimal rate; private String startDate; @@ -122,11 +122,11 @@ public class Financing { this.currency = currency; } - public Double getRate() { + public BigDecimal getRate() { return rate; } - public void setRate(Double rate) { + public void setRate(BigDecimal rate) { this.rate = rate; } diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/FlowTrace.java b/oa-backend/src/main/java/com/kaidi/oa/domain/FlowTrace.java index 5d8a80d..5d6dc78 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/FlowTrace.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/FlowTrace.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -31,7 +30,6 @@ public class FlowTrace { /** Who handled the step. */ private String who; - @Lob @Column(columnDefinition = "TEXT") private String opinion; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/FormInstance.java b/oa-backend/src/main/java/com/kaidi/oa/domain/FormInstance.java index 65a0663..e5e4b98 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/FormInstance.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/FormInstance.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -33,7 +32,6 @@ public class FormInstance { private String title; - @Lob @Column(name = "data_json", columnDefinition = "TEXT") private String dataJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/FormTemplate.java b/oa-backend/src/main/java/com/kaidi/oa/domain/FormTemplate.java index 2426452..99ae12f 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/FormTemplate.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/FormTemplate.java @@ -3,7 +3,6 @@ package com.kaidi.oa.domain; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; /** @@ -28,15 +27,12 @@ public class FormTemplate { private String org; - @Lob @Column(name = "form_schema_json", columnDefinition = "TEXT") private String formSchemaJson; - @Lob @Column(name = "flow_schema_json", columnDefinition = "TEXT") private String flowSchemaJson; - @Lob @Column(columnDefinition = "TEXT") private String instructions; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/HrLaborTemplate.java b/oa-backend/src/main/java/com/kaidi/oa/domain/HrLaborTemplate.java index da07ce9..a430353 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/HrLaborTemplate.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/HrLaborTemplate.java @@ -4,7 +4,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; import java.time.Instant; @@ -40,7 +40,7 @@ public class HrLaborTemplate { private String version; /** 模板正文(含占位符 {员工姓名} {岗位} {薪资} 等)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String bodyTemplate; /** 必备条款(逗号分隔,如「试用期条款,保密条款,竞业限制条款」)。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/InternalNewsletter.java b/oa-backend/src/main/java/com/kaidi/oa/domain/InternalNewsletter.java index a016d9b..a68153b 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/InternalNewsletter.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/InternalNewsletter.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -44,7 +43,7 @@ public class InternalNewsletter { private String authorDept; /** 正文(富文本,允许大段文字)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String body; /** 配图/附件 URL(逗号分隔,如 "https://…/img1.jpg,https://…/img2.jpg")。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/IpAsset.java b/oa-backend/src/main/java/com/kaidi/oa/domain/IpAsset.java index 749b500..01db68c 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/IpAsset.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/IpAsset.java @@ -7,7 +7,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -92,7 +92,7 @@ public class IpAsset { /** 责任人(IP 部门跟案人)。 */ private String owner; - @Lob + @Column(columnDefinition = "TEXT") private String remark; private Instant createdAt; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/IpAssetEvent.java b/oa-backend/src/main/java/com/kaidi/oa/domain/IpAssetEvent.java index f7b8e38..3a463d2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/IpAssetEvent.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/IpAssetEvent.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -35,7 +35,7 @@ public class IpAssetEvent { private String toValue; - @Lob + @Column(columnDefinition = "TEXT") private String note; /** 操作人(跟案人/复核人)。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/IpKnowledge.java b/oa-backend/src/main/java/com/kaidi/oa/domain/IpKnowledge.java index 0509a5a..980dbe2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/IpKnowledge.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/IpKnowledge.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -33,7 +33,7 @@ public class IpKnowledge { /** 技术关键词(逗号分隔,供按关键词检索)。 */ private String keywords; - @Lob + @Column(columnDefinition = "TEXT") private String content; private String source; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/IpLicenseTransfer.java b/oa-backend/src/main/java/com/kaidi/oa/domain/IpLicenseTransfer.java index d8796e2..b74d089 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/IpLicenseTransfer.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/IpLicenseTransfer.java @@ -7,7 +7,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -71,7 +71,7 @@ public class IpLicenseTransfer { private String status; /** 备注(合同关键条款摘要)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String remark; /** 经办人。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulation.java b/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulation.java index 4b80296..b0bc90f 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulation.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulation.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -37,7 +37,7 @@ public class IpRegulation { private String currentVersion; /** 当前正文(最新草稿或已发布版)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String content; private String owner; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulationVersion.java b/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulationVersion.java index f5b8d3c..f01eb7d 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulationVersion.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/IpRegulationVersion.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -29,7 +29,7 @@ public class IpRegulationVersion { private String action; - @Lob + @Column(columnDefinition = "TEXT") private String contentSnapshot; /** 修订说明 / 审批意见。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/IpSciCredArchive.java b/oa-backend/src/main/java/com/kaidi/oa/domain/IpSciCredArchive.java index 75f07de..c7e0564 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/IpSciCredArchive.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/IpSciCredArchive.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -77,7 +76,6 @@ public class IpSciCredArchive { private String validUntil; /** 文件备注/摘要。 */ - @Lob @Column(columnDefinition = "TEXT") private String remark; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/ItKnowledgeArticle.java b/oa-backend/src/main/java/com/kaidi/oa/domain/ItKnowledgeArticle.java index 63109b1..119b917 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/ItKnowledgeArticle.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/ItKnowledgeArticle.java @@ -4,7 +4,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; import java.time.Instant; @@ -34,7 +34,7 @@ public class ItKnowledgeArticle { private String keywords; /** 解决方案正文(步骤)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String content; /** 作者 / 维护人。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/LegalConsult.java b/oa-backend/src/main/java/com/kaidi/oa/domain/LegalConsult.java index a28d0d1..d39fa57 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/LegalConsult.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/LegalConsult.java @@ -4,7 +4,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; import java.time.Instant; @@ -28,7 +28,7 @@ public class LegalConsult { private String subject; /** 问题描述详情。 */ - @Lob + @Column(columnDefinition = "TEXT") private String detail; /** 申请部门。 */ @@ -44,7 +44,7 @@ public class LegalConsult { private String assignee; /** 法律意见(回复内容)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String legalOpinion; /** 状态:待受理 / 处理中 / 已答复 / 已关闭。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Meeting.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Meeting.java index df65b09..8e977cf 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Meeting.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Meeting.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -51,7 +50,6 @@ public class Meeting { private String description; /** 会议附件名列表的 JSON(["文件名1","文件名2"],仅记录文件名,不存二进制)。 */ - @Lob @Column(columnDefinition = "TEXT") private String attachmentJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/MeetingMinute.java b/oa-backend/src/main/java/com/kaidi/oa/domain/MeetingMinute.java index ec56e66..0fe3ca2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/MeetingMinute.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/MeetingMinute.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -29,7 +28,6 @@ public class MeetingMinute { private String title; - @Lob @Column(columnDefinition = "TEXT") private String content; @@ -37,7 +35,6 @@ public class MeetingMinute { private String status; /** 决议项, TEXT/JSON 串. */ - @Lob @Column(columnDefinition = "TEXT") private String decisions; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Message.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Message.java index 646d7ed..5027abe 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Message.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Message.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -34,7 +33,6 @@ public class Message { private String title; - @Lob @Column(columnDefinition = "TEXT") private String body; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/MfgEnvSupplierProfile.java b/oa-backend/src/main/java/com/kaidi/oa/domain/MfgEnvSupplierProfile.java index e717d4d..84e61e5 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/MfgEnvSupplierProfile.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/MfgEnvSupplierProfile.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.time.Instant; @@ -84,7 +83,7 @@ public class MfgEnvSupplierProfile { * 历史供货业绩(JSON 数组):[{projectName, deliveryYear, qty, qualifiedRate, customer}...]。 * Lob 存储,前端渲染为折叠卡片。 */ - @Lob + @Column(columnDefinition = "TEXT") private String performanceJson; /** 历史供货总次数(冗余,便于快速汇总)。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/NetScanLog.java b/oa-backend/src/main/java/com/kaidi/oa/domain/NetScanLog.java index c0abf1a..4a85dc7 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/NetScanLog.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/NetScanLog.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -31,7 +31,7 @@ public class NetScanLog { private String title; - @Lob + @Column(columnDefinition = "TEXT") private String content; private String link; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/OaSetting.java b/oa-backend/src/main/java/com/kaidi/oa/domain/OaSetting.java index 320eae2..ff4cb4d 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/OaSetting.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/OaSetting.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; /** 通用键值配置:settingKey 唯一,valueJson 存任意 JSON 字符串。用于工时设置/信息项设置等页面级配置。 */ @@ -20,7 +19,6 @@ public class OaSetting { @Column(unique = true, nullable = false) private String settingKey; - @Lob @Column(columnDefinition = "TEXT") private String valueJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/PmtFinancingContract.java b/oa-backend/src/main/java/com/kaidi/oa/domain/PmtFinancingContract.java index 48e06b7..6d6da1e 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/PmtFinancingContract.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/PmtFinancingContract.java @@ -39,7 +39,7 @@ public class PmtFinancingContract { private BigDecimal contractAmount = BigDecimal.ZERO; /** 合同利率(年化,如 4.35)。 */ - private Double contractRate; + private BigDecimal contractRate; /** 合同签署日期(YYYY-MM-DD)。 */ private String signDate; @@ -94,8 +94,8 @@ public class PmtFinancingContract { public BigDecimal getContractAmount() { return contractAmount; } public void setContractAmount(BigDecimal contractAmount) { this.contractAmount = contractAmount; } - public Double getContractRate() { return contractRate; } - public void setContractRate(Double contractRate) { this.contractRate = contractRate; } + public BigDecimal getContractRate() { return contractRate; } + public void setContractRate(BigDecimal contractRate) { this.contractRate = contractRate; } public String getSignDate() { return signDate; } public void setSignDate(String signDate) { this.signDate = signDate; } diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/PmtInternalTrans.java b/oa-backend/src/main/java/com/kaidi/oa/domain/PmtInternalTrans.java index eb1b75c..43936bb 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/PmtInternalTrans.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/PmtInternalTrans.java @@ -39,7 +39,7 @@ public class PmtInternalTrans { private BigDecimal amount = BigDecimal.ZERO; /** 利率(内部计息时使用,年化,如 3.5 表示 3.5%)。 */ - private Double interestRate; + private BigDecimal interestRate; /** 计息起始日。 */ private String interestFrom; @@ -104,8 +104,8 @@ public class PmtInternalTrans { public BigDecimal getAmount() { return amount; } public void setAmount(BigDecimal amount) { this.amount = amount; } - public Double getInterestRate() { return interestRate; } - public void setInterestRate(Double interestRate) { this.interestRate = interestRate; } + public BigDecimal getInterestRate() { return interestRate; } + public void setInterestRate(BigDecimal interestRate) { this.interestRate = interestRate; } public String getInterestFrom() { return interestFrom; } public void setInterestFrom(String interestFrom) { this.interestFrom = interestFrom; } diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/PmtLoanScheme.java b/oa-backend/src/main/java/com/kaidi/oa/domain/PmtLoanScheme.java index 53e879a..2f91f13 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/PmtLoanScheme.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/PmtLoanScheme.java @@ -41,7 +41,7 @@ public class PmtLoanScheme { private BigDecimal amount = BigDecimal.ZERO; /** 年化利率(百分比,如 4.35 表示 4.35%)。 */ - private Double annualRate; + private BigDecimal annualRate; /** 期限(月)。 */ private Integer termMonths; @@ -56,7 +56,7 @@ public class PmtLoanScheme { private String guaranteeType; /** 担保费率(年化,百分比)。 */ - private Double guaranteeRate; + private BigDecimal guaranteeRate; /** 提款条件(文字描述)。 */ private String drawdownConditions; @@ -65,7 +65,7 @@ public class PmtLoanScheme { * 系统自动计算的综合成本率(利息+费用+担保成本之和/本金,IRR 简化口径,百分比)。 * 创建/更新时服务端根据 rate+费用+担保自动回填。 */ - private Double effectiveCostRate; + private BigDecimal effectiveCostRate; /** 综合排名(越小越优,由 /rank 端点服务端按综合成本排序后写入)。 */ private Integer rank; @@ -104,8 +104,8 @@ public class PmtLoanScheme { public BigDecimal getAmount() { return amount; } public void setAmount(BigDecimal amount) { this.amount = amount; } - public Double getAnnualRate() { return annualRate; } - public void setAnnualRate(Double annualRate) { this.annualRate = annualRate; } + public BigDecimal getAnnualRate() { return annualRate; } + public void setAnnualRate(BigDecimal annualRate) { this.annualRate = annualRate; } public Integer getTermMonths() { return termMonths; } public void setTermMonths(Integer termMonths) { this.termMonths = termMonths; } @@ -119,14 +119,14 @@ public class PmtLoanScheme { public String getGuaranteeType() { return guaranteeType; } public void setGuaranteeType(String guaranteeType) { this.guaranteeType = guaranteeType; } - public Double getGuaranteeRate() { return guaranteeRate; } - public void setGuaranteeRate(Double guaranteeRate) { this.guaranteeRate = guaranteeRate; } + public BigDecimal getGuaranteeRate() { return guaranteeRate; } + public void setGuaranteeRate(BigDecimal guaranteeRate) { this.guaranteeRate = guaranteeRate; } public String getDrawdownConditions() { return drawdownConditions; } public void setDrawdownConditions(String drawdownConditions) { this.drawdownConditions = drawdownConditions; } - public Double getEffectiveCostRate() { return effectiveCostRate; } - public void setEffectiveCostRate(Double effectiveCostRate) { this.effectiveCostRate = effectiveCostRate; } + public BigDecimal getEffectiveCostRate() { return effectiveCostRate; } + public void setEffectiveCostRate(BigDecimal effectiveCostRate) { this.effectiveCostRate = effectiveCostRate; } public Integer getRank() { return rank; } public void setRank(Integer rank) { this.rank = rank; } diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/StdApplication.java b/oa-backend/src/main/java/com/kaidi/oa/domain/StdApplication.java index 04c78af..fbb1fd6 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/StdApplication.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/StdApplication.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -38,7 +38,7 @@ public class StdApplication { private String planNo; - @Lob + @Column(columnDefinition = "TEXT") private String techContent; private String drafters; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/StoredFile.java b/oa-backend/src/main/java/com/kaidi/oa/domain/StoredFile.java index 2de0979..c9929f2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/StoredFile.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/StoredFile.java @@ -5,8 +5,9 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; import java.time.Instant; @@ -34,12 +35,9 @@ public class StoredFile { /** Size in bytes. */ private Long size; - /** - * Raw bytes as a plain byte[] (NOT @Lob): SQLite's JDBC driver does not implement - * the streamed-Blob read path that @Lob triggers ("not implemented by SQLite JDBC - * driver"); a plain byte[] is read directly via getBytes() and works. - */ - @Column(columnDefinition = "BLOB") + /** Raw bytes mapped to SQLite BLOB and PostgreSQL bytea without JDBC Blob streaming. */ + @JdbcTypeCode(SqlTypes.LONGVARBINARY) + @Column(length = Integer.MAX_VALUE) private byte[] data; /** Display name of the uploader (resolved from the auth token). */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/Survey.java b/oa-backend/src/main/java/com/kaidi/oa/domain/Survey.java index 5ca1ef9..c3999de 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/Survey.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/Survey.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; /** @@ -29,12 +28,10 @@ public class Survey { private String status; - @Lob @Column(name = "options_json", columnDefinition = "TEXT") private String optionsJson; // --> JSON array of voter usernames who already voted; used to reject duplicate votes. - @Lob @Column(name = "voters_json", columnDefinition = "TEXT") private String votersJson; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/SvIndepClaim.java b/oa-backend/src/main/java/com/kaidi/oa/domain/SvIndepClaim.java index 3262bb3..7e9f142 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/SvIndepClaim.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/SvIndepClaim.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; import java.math.BigDecimal; @@ -57,7 +56,6 @@ public class SvIndepClaim { private String incidentEndDate; /** 事件经过详细说明。 */ - @Lob @Column(columnDefinition = "TEXT") private String incidentDetail; @@ -73,7 +71,6 @@ public class SvIndepClaim { private Integer criticalPathImpactDays; /** 关键线路影响分析说明(如"该延误不在关键路径,不影响完工日期")。 */ - @Lob @Column(columnDefinition = "TEXT") private String criticalPathImpact; @@ -82,7 +79,6 @@ public class SvIndepClaim { private BigDecimal claimAmount = BigDecimal.ZERO; /** 费用影响评估说明。 */ - @Lob @Column(columnDefinition = "TEXT") private String costImpactDetail; @@ -102,7 +98,6 @@ public class SvIndepClaim { private BigDecimal approvedAmount = BigDecimal.ZERO; /** 监理意见详细说明。 */ - @Lob @Column(columnDefinition = "TEXT") private String reviewOpinion; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/SysRole.java b/oa-backend/src/main/java/com/kaidi/oa/domain/SysRole.java index fd8f598..208729c 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/SysRole.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/SysRole.java @@ -22,6 +22,12 @@ public class SysRole { @Column(nullable = false, unique = true) private String code; + /** 角色说明(角色管理 UI 用)。 */ + private String description; + + /** 系统内置角色(ADMIN/APPROVER/USER)不可删;自定义部门角色为 false。 */ + private boolean system = false; + public Long getId() { return id; } @@ -45,4 +51,20 @@ public class SysRole { public void setCode(String code) { this.code = code; } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public boolean isSystem() { + return system; + } + + public void setSystem(boolean system) { + this.system = system; + } } diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/TechAchievement.java b/oa-backend/src/main/java/com/kaidi/oa/domain/TechAchievement.java index 2421b44..eb7a0fc 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/TechAchievement.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/TechAchievement.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -47,7 +47,7 @@ public class TechAchievement { private Long ipAssetId; /** 佐证材料清单(论文/标准/软著/检测报告…)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String evidence; /** 成果评价等级。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/TechContract.java b/oa-backend/src/main/java/com/kaidi/oa/domain/TechContract.java index ac488db..81cd264 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/TechContract.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/TechContract.java @@ -7,7 +7,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -58,11 +58,11 @@ public class TechContract { private String ipAssetName; /** 自动生成的创新技术方案(材料)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String techScheme; /** 自动生成的承诺书(材料)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String commitmentLetter; private String owner; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WmDeclTemplate.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WmDeclTemplate.java index 94527f0..efabcb9 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WmDeclTemplate.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WmDeclTemplate.java @@ -4,7 +4,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; import java.time.Instant; @@ -62,7 +62,7 @@ public class WmDeclTemplate { private String placeholders; /** 模板正文(含占位符的完整模板文本)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String bodyTemplate; /** 更新说明(本版变更内容摘要,更新时通知相关人员)。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WmDocVersion.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WmDocVersion.java index d4b061f..011bea2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WmDocVersion.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WmDocVersion.java @@ -4,7 +4,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; import java.time.Instant; @@ -46,7 +46,7 @@ public class WmDocVersion { private String summary; /** 文档正文(内联富文本)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String content; /** 外部附件 URL / 文件路径(可空;与通用文件模块结合时存储路径)。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WmPromotion.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WmPromotion.java index 5dfdd2c..7fe7c63 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WmPromotion.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WmPromotion.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -64,7 +64,7 @@ public class WmPromotion { private Integer attendeeCount; /** 效果评估说明。 */ - @Lob + @Column(columnDefinition = "TEXT") private String effectNote; /** 推广材料(作业指导书/PPT/视频等,逗号分隔文件路径或文件 id)。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethod.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethod.java index 428648f..552dbac 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethod.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethod.java @@ -7,7 +7,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -70,41 +70,41 @@ public class WorkMethod { private String stage; // ---- 立项信息(需求功能1·工法立项) ---- - @Lob + @Column(columnDefinition = "TEXT") private String techBackground; - @Lob + @Column(columnDefinition = "TEXT") private String innovation; - @Lob + @Column(columnDefinition = "TEXT") private String applicableScope; - @Lob + @Column(columnDefinition = "TEXT") private String expectedBenefit; // ---- 工法文本九大要素(需求功能1·工法编制) ---- - @Lob + @Column(columnDefinition = "TEXT") private String contentFeature; - @Lob + @Column(columnDefinition = "TEXT") private String contentPrinciple; - @Lob + @Column(columnDefinition = "TEXT") private String contentProcess; - @Lob + @Column(columnDefinition = "TEXT") private String contentMaterial; - @Lob + @Column(columnDefinition = "TEXT") private String contentQuality; - @Lob + @Column(columnDefinition = "TEXT") private String contentSafety; - @Lob + @Column(columnDefinition = "TEXT") private String contentEnv; - @Lob + @Column(columnDefinition = "TEXT") private String contentBenefit; // ---- 证书与有效期(需求功能1·工法证书) ---- diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodApplication.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodApplication.java index a1a05d9..44b9e6b 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodApplication.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodApplication.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -53,13 +53,13 @@ public class WorkMethodApplication { * 申报材料清单:逗号分隔的 "材料名:0/1"(0=缺,1=齐),如 * "申报书:1,工法文本:1,查新报告:0,应用证明:1,经济效益证明:0"。 */ - @Lob + @Column(columnDefinition = "TEXT") private String materials; /** 批准文号(批准后回填)。 */ private String approveDocNo; - @Lob + @Column(columnDefinition = "TEXT") private String remark; private Instant createdAt; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodEvent.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodEvent.java index 4dfbc81..e068010 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodEvent.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodEvent.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -36,7 +36,7 @@ public class WorkMethodEvent { private String toValue; - @Lob + @Column(columnDefinition = "TEXT") private String note; private String operator; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReview.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReview.java index a6e8bb6..f6343f3 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReview.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReview.java @@ -6,7 +6,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -44,7 +44,7 @@ public class WorkMethodReview { /** 评分(0-100,可空)。 */ private Integer score; - @Lob + @Column(columnDefinition = "TEXT") private String opinion; private String reviewedDate; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReward.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReward.java index 91dd334..9d145f2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReward.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodReward.java @@ -7,7 +7,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -44,7 +44,7 @@ public class WorkMethodReward { * 完成人贡献分配明细:逗号分隔的 "姓名:比例%:金额",如 * "张三:50:5000.00,李四:30:3000.00,王五:20:2000.00"。比例之和应为 100。 */ - @Lob + @Column(columnDefinition = "TEXT") private String allocation; /** 奖励状态:待审批 / 已审批 / 已发放 / 已驳回。 */ @@ -61,7 +61,7 @@ public class WorkMethodReward { /** 审批后生成的资金支付中心付款单 id(联动财务)。 */ private Long paymentId; - @Lob + @Column(columnDefinition = "TEXT") private String remark; private Instant createdAt; diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodUsage.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodUsage.java index e25559a..f677a9a 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodUsage.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkMethodUsage.java @@ -7,7 +7,7 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; +import jakarta.persistence.Column; import jakarta.persistence.Table; /** @@ -49,7 +49,7 @@ public class WorkMethodUsage { private Integer shortenDays = 0; /** 应用效果描述(质量提升/用户评价)。 */ - @Lob + @Column(columnDefinition = "TEXT") private String effect; /** 登记人。 */ diff --git a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkPlan.java b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkPlan.java index f8a7fee..2bf7845 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/domain/WorkPlan.java +++ b/oa-backend/src/main/java/com/kaidi/oa/domain/WorkPlan.java @@ -5,7 +5,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.Lob; import jakarta.persistence.Table; /** A work plan. period is e.g. 本周 / 本月 / 本季; status is 草稿 / 执行中 / 已完成. */ @@ -28,7 +27,6 @@ public class WorkPlan { private String status; - @Lob @Column(columnDefinition = "TEXT") private String content; diff --git a/oa-backend/src/main/java/com/kaidi/oa/seed/FinancingDomainSeeder.java b/oa-backend/src/main/java/com/kaidi/oa/seed/FinancingDomainSeeder.java index 2757bbc..9961bed 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/seed/FinancingDomainSeeder.java +++ b/oa-backend/src/main/java/com/kaidi/oa/seed/FinancingDomainSeeder.java @@ -131,7 +131,7 @@ public class FinancingDomainSeeder implements CommandLineRunner { f1.setCreditLimit(Money.of(50000000.0)); f1.setAmount(Money.of(50000000.0)); f1.setCurrency("人民币"); - f1.setRate(3.85); + f1.setRate(BigDecimal.valueOf(3.85)); f1.setStartDate("2024-01-15"); f1.setEndDate("2026-01-14"); f1.setTermMonths(24); @@ -153,7 +153,7 @@ public class FinancingDomainSeeder implements CommandLineRunner { f2.setCreditLimit(Money.of(100000000.0)); f2.setAmount(Money.of(80000000.0)); f2.setCurrency("人民币"); - f2.setRate(3.20); + f2.setRate(BigDecimal.valueOf(3.20)); f2.setStartDate("2024-03-01"); f2.setEndDate("2029-02-28"); f2.setTermMonths(60); @@ -173,7 +173,7 @@ public class FinancingDomainSeeder implements CommandLineRunner { f3.setCreditLimit(Money.of(20000000.0)); f3.setAmount(Money.of(18000000.0)); f3.setCurrency("人民币"); - f3.setRate(4.35); + f3.setRate(BigDecimal.valueOf(4.35)); f3.setStartDate("2024-06-01"); f3.setEndDate("2025-05-31"); f3.setTermMonths(12); @@ -193,7 +193,7 @@ public class FinancingDomainSeeder implements CommandLineRunner { f4.setCreditLimit(Money.of(30000000.0)); f4.setAmount(Money.of(30000000.0)); f4.setCurrency("人民币"); - f4.setRate(4.10); + f4.setRate(BigDecimal.valueOf(4.10)); f4.setStartDate("2025-02-01"); f4.setEndDate("2026-01-31"); f4.setTermMonths(12); @@ -214,7 +214,7 @@ public class FinancingDomainSeeder implements CommandLineRunner { f5.setCreditLimit(Money.of(20000000.0)); f5.setAmount(Money.of(20000000.0)); f5.setCurrency("人民币"); - f5.setRate(2.50); + f5.setRate(BigDecimal.valueOf(2.50)); f5.setStartDate("2025-07-01"); f5.setEndDate("2026-06-30"); f5.setTermMonths(12); @@ -234,7 +234,7 @@ public class FinancingDomainSeeder implements CommandLineRunner { f6.setCreditLimit(Money.of(10000000.0)); f6.setAmount(Money.of(10000000.0)); f6.setCurrency("人民币"); - f6.setRate(4.60); + f6.setRate(BigDecimal.valueOf(4.60)); f6.setStartDate("2023-01-01"); f6.setEndDate("2024-12-31"); f6.setTermMonths(24); diff --git a/oa-backend/src/main/java/com/kaidi/oa/service/SystemUpdateService.java b/oa-backend/src/main/java/com/kaidi/oa/service/SystemUpdateService.java new file mode 100644 index 0000000..dd653b5 --- /dev/null +++ b/oa-backend/src/main/java/com/kaidi/oa/service/SystemUpdateService.java @@ -0,0 +1,470 @@ +package com.kaidi.oa.service; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.kaidi.oa.common.ApiException; +import com.kaidi.oa.config.UpdateProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.info.BuildProperties; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.math.BigInteger; +import java.net.URI; +import java.net.URLEncoder; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** Checks Gitea releases and delegates installation to the external update helper. */ +@Service +public class SystemUpdateService { + + private static final Logger log = LoggerFactory.getLogger(SystemUpdateService.class); + private static final Pattern VERSION_PATTERN = Pattern.compile( + "^[vV]?(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?" + + "(?:-([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?" + + "(?:\\+([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?$"); + private static final long MAX_STATE_BYTES = 64 * 1024; + + private final UpdateProperties properties; + private final ObjectMapper objectMapper; + private final HttpClient httpClient; + private final String currentVersion; + private final AtomicReference state; + private final AtomicBoolean installRunning = new AtomicBoolean(false); + + @Autowired + public SystemUpdateService(UpdateProperties properties, + ObjectMapper objectMapper, + ObjectProvider buildProperties) { + this(properties, objectMapper, buildProperties, + HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(Math.max(1, properties.getRequestTimeoutSeconds()))) + .followRedirects(HttpClient.Redirect.NORMAL) + .build()); + } + + SystemUpdateService(UpdateProperties properties, + ObjectMapper objectMapper, + ObjectProvider buildProperties, + HttpClient httpClient) { + this.properties = properties; + this.objectMapper = objectMapper; + this.httpClient = httpClient; + BuildProperties build = buildProperties.getIfAvailable(); + this.currentVersion = build == null || build.getVersion() == null ? "dev" : build.getVersion(); + this.state = new AtomicReference<>(UpdateStatus.idle(properties.isEnabled(), currentVersion)); + } + + public UpdateStatus status() { + UpdateStatus persisted = readHelperState(); + return persisted == null ? state.get() : persisted; + } + + public synchronized UpdateStatus check() { + requireConfigured(); + state.set(state.get().withPhase(UpdatePhase.CHECKING, 5, "正在检查 Gitea Release")); + try { + ReleaseInfo release = fetchLatestRelease(); + boolean available = compareVersions(release.version(), currentVersion) > 0; + UpdateStatus checked = new UpdateStatus( + true, + currentVersion, + release.version(), + available, + available ? UpdatePhase.AVAILABLE : UpdatePhase.UP_TO_DATE, + 100, + available ? "发现新版本" : "当前已是最新版本", + Instant.now(), + release.publishedAt(), + release.notes(), + release.assets(), + null + ); + state.set(checked); + return checked; + } catch (RuntimeException e) { + state.set(state.get().failed(safeMessage(e))); + throw e; + } + } + + public UpdateStatus install(String requestedVersion) { + requireConfigured(); + if (!isVersion(requestedVersion)) { + throw new ApiException(400, "版本号格式不正确"); + } + UpdateStatus checked = state.get(); + if (checked.latestVersion() == null || !sameVersion(checked.latestVersion(), requestedVersion)) { + checked = check(); + } + if (!sameVersion(checked.latestVersion(), requestedVersion)) { + throw new ApiException(409, "目标版本已变化,请重新检查更新"); + } + if (!checked.updateAvailable()) { + throw new ApiException(409, "当前版本不需要更新"); + } + if (!installRunning.compareAndSet(false, true)) { + throw new ApiException(409, "已有更新任务正在执行"); + } + + Path helper = Path.of(properties.getHelperCommand()).toAbsolutePath().normalize(); + if (!Files.isRegularFile(helper) || !Files.isExecutable(helper)) { + installRunning.set(false); + throw new ApiException(503, "更新助手不可用,请检查安装目录"); + } + + try { + Path statePath = statePath(); + Path parent = statePath.getParent(); + if (parent != null) { + Files.createDirectories(parent); + } + Path logFile = parent == null + ? Path.of("update-helper.log").toAbsolutePath() + : parent.resolve("update-helper.log"); + ProcessBuilder processBuilder = new ProcessBuilder( + helper.toString(), "install", normalizeVersion(requestedVersion)); + processBuilder.environment().put("ERP_APP_PID", String.valueOf(ProcessHandle.current().pid())); + processBuilder.redirectErrorStream(true); + processBuilder.redirectOutput(ProcessBuilder.Redirect.appendTo(logFile.toFile())); + Process process = processBuilder.start(); + + UpdateStatus starting = checked.withPhase(UpdatePhase.STARTING, 1, "更新助手已启动"); + state.set(starting); + process.onExit().thenAccept(completed -> { + installRunning.set(false); + if (completed.exitValue() != 0) { + state.updateAndGet(value -> value.failed("更新助手执行失败,退出码 " + completed.exitValue())); + } + }); + return starting; + } catch (IOException e) { + installRunning.set(false); + log.error("Unable to start update helper", e); + throw new ApiException(500, "无法启动更新助手"); + } + } + + private ReleaseInfo fetchLatestRelease() { + String[] repository = properties.getRepository().split("/", 2); + if (repository.length != 2 || repository[0].isBlank() || repository[1].isBlank()) { + throw new ApiException(500, "更新仓库配置无效"); + } + String base = properties.getGiteaBaseUrl().replaceAll("/+$", ""); + URI uri = URI.create(base + "/api/v1/repos/" + encode(repository[0]) + "/" + + encode(repository[1]) + "/releases/latest"); + HttpRequest.Builder builder = HttpRequest.newBuilder(uri) + .timeout(Duration.ofSeconds(Math.max(1, properties.getRequestTimeoutSeconds()))) + .header("Accept", "application/json") + .GET(); + if (properties.getToken() != null && !properties.getToken().isBlank()) { + builder.header("Authorization", "token " + properties.getToken().trim()); + } + try { + HttpResponse response = httpClient.send(builder.build(), + HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8)); + if (response.statusCode() == 404) { + throw new ApiException(404, "Gitea 尚未发布 Release"); + } + if (response.statusCode() < 200 || response.statusCode() >= 300) { + throw new ApiException(502, "Gitea Release API 返回 HTTP " + response.statusCode()); + } + return parseRelease(objectMapper.readTree(response.body())); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new ApiException(503, "检查更新被中断"); + } catch (IOException | IllegalArgumentException e) { + log.warn("Unable to check Gitea release: {}", e.getMessage()); + throw new ApiException(503, "无法连接更新服务器"); + } + } + + private ReleaseInfo parseRelease(JsonNode root) { + String tag = text(root, "tag_name"); + if (!isVersion(tag)) { + throw new ApiException(502, "Release 版本号格式无效"); + } + if (root.path("draft").asBoolean(false)) { + throw new ApiException(502, "最新 Release 仍是草稿"); + } + Matcher versionMatcher = VERSION_PATTERN.matcher(tag); + versionMatcher.matches(); + boolean taggedPrerelease = versionMatcher.group(4) != null; + if ((root.path("prerelease").asBoolean(false) || taggedPrerelease) + && "stable".equalsIgnoreCase(properties.getChannel())) { + throw new ApiException(502, "稳定频道拒绝预发布版本"); + } + List assets = new ArrayList<>(); + for (JsonNode node : root.path("assets")) { + assets.add(new ReleaseAsset( + text(node, "name"), + text(node, "browser_download_url"), + node.path("size").asLong(0) + )); + } + String version = normalizeVersion(tag); + requireAsset(assets, "kaidi-erp-" + version + ".tar.gz"); + requireAsset(assets, "SHA256SUMS"); + requireAsset(assets, "SHA256SUMS.sig"); + Instant publishedAt = null; + String published = text(root, "published_at"); + if (!published.isBlank()) { + try { + publishedAt = Instant.parse(published); + } catch (RuntimeException ignore) { + // An invalid optional timestamp must not hide an otherwise valid release. + } + } + return new ReleaseInfo(version, text(root, "body"), publishedAt, List.copyOf(assets)); + } + + private void requireConfigured() { + if (!properties.isEnabled()) { + throw new ApiException(503, "在线更新尚未启用"); + } + if (properties.getGiteaBaseUrl() == null || properties.getGiteaBaseUrl().isBlank()) { + throw new ApiException(503, "尚未配置 Gitea 地址"); + } + URI uri; + try { + uri = URI.create(properties.getGiteaBaseUrl().trim()); + } catch (IllegalArgumentException e) { + throw new ApiException(500, "Gitea 地址格式无效"); + } + String scheme = uri.getScheme() == null ? "" : uri.getScheme().toLowerCase(Locale.ROOT); + if (!"https".equals(scheme) && !(properties.isAllowInsecureHttp() && "http".equals(scheme))) { + throw new ApiException(503, "更新服务器必须使用 HTTPS"); + } + } + + private UpdateStatus readHelperState() { + Path path = statePath(); + try { + if (!Files.isRegularFile(path) || Files.size(path) > MAX_STATE_BYTES) { + return null; + } + JsonNode root = objectMapper.readTree(path.toFile()); + String phaseText = text(root, "phase"); + if (phaseText.isBlank()) { + return null; + } + UpdatePhase phase = UpdatePhase.valueOf(phaseText.toUpperCase(Locale.ROOT)); + UpdateStatus memory = state.get(); + String helperVersion = blankToNull(text(root, "version")); + boolean updateAvailable = helperVersion != null + && phase != UpdatePhase.SUCCEEDED + && compareVersions(helperVersion, currentVersion) > 0; + Instant helperUpdatedAt = parseInstant(text(root, "updatedAt")); + return new UpdateStatus( + properties.isEnabled(), + currentVersion, + helperVersion, + updateAvailable, + phase, + Math.max(0, Math.min(100, root.path("progress").asInt(0))), + text(root, "message"), + helperUpdatedAt == null ? memory.checkedAt() : helperUpdatedAt, + memory.publishedAt(), + memory.releaseNotes(), + memory.assets(), + blankToNull(text(root, "error")) + ); + } catch (Exception e) { + log.debug("Ignoring unreadable update state {}: {}", path, e.getMessage()); + return null; + } + } + + private Path statePath() { + String value = properties.getStateFile(); + return Path.of(value == null || value.isBlank() ? "./runtime/update-state.json" : value) + .toAbsolutePath().normalize(); + } + + private static String text(JsonNode node, String field) { + JsonNode value = node.path(field); + return value.isTextual() ? value.asText().trim() : ""; + } + + private static String encode(String pathSegment) { + return URLEncoder.encode(pathSegment, StandardCharsets.UTF_8).replace("+", "%20"); + } + + private static void requireAsset(List assets, String name) { + if (assets.stream().noneMatch(asset -> name.equals(asset.name()))) { + throw new ApiException(502, "Release 缺少文件 " + name); + } + } + + private static boolean isVersion(String version) { + return version != null && VERSION_PATTERN.matcher(version.trim()).matches(); + } + + private static boolean sameVersion(String left, String right) { + return normalizeVersion(left).equals(normalizeVersion(right)); + } + + static int compareVersions(String left, String right) { + Matcher a = VERSION_PATTERN.matcher(Objects.requireNonNullElse(left, "").trim()); + Matcher b = VERSION_PATTERN.matcher(Objects.requireNonNullElse(right, "").trim()); + boolean aMatches = a.matches(); + boolean bMatches = b.matches(); + if (aMatches && !bMatches) { + return 1; + } + if (!aMatches && bMatches) { + return -1; + } + if (!aMatches) { + return normalizeVersion(left).compareToIgnoreCase(normalizeVersion(right)); + } + for (int i = 1; i <= 3; i++) { + int compared = number(a.group(i)).compareTo(number(b.group(i))); + if (compared != 0) { + return compared; + } + } + String aPre = a.group(4); + String bPre = b.group(4); + if (aPre == null && bPre != null) { + return 1; + } + if (aPre != null && bPre == null) { + return -1; + } + if (aPre == null) { + return 0; + } + return comparePrerelease(aPre, bPre); + } + + private static int comparePrerelease(String left, String right) { + String[] a = left.split("\\."); + String[] b = right.split("\\."); + for (int i = 0; i < Math.min(a.length, b.length); i++) { + if (a[i].equals(b[i])) { + continue; + } + boolean aNumeric = isNumericIdentifier(a[i]); + boolean bNumeric = isNumericIdentifier(b[i]); + if (aNumeric && bNumeric) { + int compared = new BigInteger(a[i]).compareTo(new BigInteger(b[i])); + if (compared != 0) { + return compared; + } + continue; + } + if (aNumeric != bNumeric) { + return aNumeric ? -1 : 1; + } + int compared = a[i].compareTo(b[i]); + if (compared != 0) { + return compared; + } + } + return Integer.compare(a.length, b.length); + } + + private static boolean isNumericIdentifier(String value) { + return value.chars().allMatch(Character::isDigit); + } + + private static BigInteger number(String value) { + return value == null || value.isBlank() ? BigInteger.ZERO : new BigInteger(value); + } + + private static String normalizeVersion(String version) { + String value = Objects.requireNonNullElse(version, "").trim(); + return value.startsWith("v") || value.startsWith("V") ? value.substring(1) : value; + } + + private static String safeMessage(RuntimeException error) { + return error instanceof ApiException ? error.getMessage() : "检查更新失败"; + } + + private static String blankToNull(String value) { + return value == null || value.isBlank() ? null : value; + } + + private static Instant parseInstant(String value) { + if (value == null || value.isBlank()) { + return null; + } + try { + return Instant.parse(value); + } catch (RuntimeException ignore) { + return null; + } + } + + private record ReleaseInfo(String version, String notes, Instant publishedAt, List assets) { + } + + public record ReleaseAsset(String name, String downloadUrl, long size) { + } + + public enum UpdatePhase { + IDLE, + CHECKING, + AVAILABLE, + UP_TO_DATE, + STARTING, + DOWNLOADING, + VERIFYING, + INSTALLING, + RESTARTING, + SUCCEEDED, + ROLLING_BACK, + ROLLED_BACK, + FAILED + } + + public record UpdateStatus( + boolean configured, + String currentVersion, + String latestVersion, + boolean updateAvailable, + UpdatePhase phase, + int progress, + String message, + Instant checkedAt, + Instant publishedAt, + String releaseNotes, + List assets, + String error + ) { + static UpdateStatus idle(boolean configured, String currentVersion) { + return new UpdateStatus(configured, currentVersion, null, false, UpdatePhase.IDLE, 0, + configured ? "等待检查更新" : "在线更新尚未启用", null, null, "", List.of(), null); + } + + UpdateStatus withPhase(UpdatePhase next, int nextProgress, String nextMessage) { + return new UpdateStatus(configured, currentVersion, latestVersion, updateAvailable, next, + nextProgress, nextMessage, checkedAt, publishedAt, releaseNotes, assets, null); + } + + UpdateStatus failed(String reason) { + return new UpdateStatus(configured, currentVersion, latestVersion, updateAvailable, + UpdatePhase.FAILED, progress, "更新失败", checkedAt, publishedAt, releaseNotes, assets, reason); + } + } +} diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/FinancingController.java b/oa-backend/src/main/java/com/kaidi/oa/web/FinancingController.java index 37ae0a8..5d52432 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/FinancingController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/FinancingController.java @@ -113,10 +113,11 @@ public class FinancingController { public record FinancingRequest( String code, String lender, String financingType, Double creditLimit, Double amount, - String currency, Double rate, String startDate, String endDate, Integer termMonths, + String currency, BigDecimal rate, String startDate, String endDate, Integer termMonths, String repayMethod, String status, String companySubject, String purpose, String owner) { } + @Transactional @PostMapping public ApiResp create(@RequestBody FinancingRequest req) { if (req.lender() == null || req.lender().isBlank()) { @@ -143,6 +144,7 @@ public class FinancingController { return ApiResp.ok(financingRepo.save(f)); } + @Transactional @PatchMapping("/{id}") public ApiResp update(@PathVariable Long id, @RequestBody FinancingRequest req) { Financing f = financingRepo.findById(id) @@ -165,7 +167,6 @@ public class FinancingController { } @DeleteMapping("/{id}") - @Transactional public ApiResp delete(@PathVariable Long id) { if (!financingRepo.existsById(id)) { throw new NotFoundException("financing not found: " + id); @@ -188,7 +189,6 @@ public class FinancingController { * 已有任意期次「已还」时拒绝重算,避免抹掉还款历史。 */ @PostMapping("/{id}/schedule") - @Transactional public ApiResp> schedule(@PathVariable Long id) { Financing f = financingRepo.findById(id) .orElseThrow(() -> new NotFoundException("financing not found: " + id)); @@ -200,7 +200,7 @@ public class FinancingController { planRepo.deleteByFinancingId(id); int term = f.getTermMonths() == null || f.getTermMonths() <= 0 ? 12 : f.getTermMonths(); - double annualRate = f.getRate() == null ? 0 : f.getRate(); + double annualRate = f.getRate() == null ? 0 : f.getRate().doubleValue(); BigDecimal principalTotal = Money.nz(f.getAmount()); String method = f.getRepayMethod() == null ? "等额本息" : f.getRepayMethod(); LocalDate start = parseDateOrNull(f.getStartDate()); @@ -288,7 +288,6 @@ public class FinancingController { * 这条联动把"融资还款"打通到结算/支付链(与需求"还款联动结算中心生成付款单"一致)。 */ @PostMapping("/repayments/{planId}/pay") - @Transactional public ApiResp payRepayment(@PathVariable Long planId) { RepaymentPlan plan = planRepo.findById(planId) .orElseThrow(() -> new NotFoundException("repayment plan not found: " + planId)); @@ -552,7 +551,7 @@ public class FinancingController { rows.add(new DebtLedgerRow(f.getId(), f.getCode(), f.getLender(), f.getFinancingType(), f.getCompanySubject(), f.getStatus(), principal.doubleValue(), paid.doubleValue(), unpaid.doubleValue(), - f.getRate() == null ? 0 : f.getRate(), + f.getRate() == null ? 0.0 : f.getRate().doubleValue(), f.getEndDate() == null ? "" : f.getEndDate(), daysToMaturity == Long.MAX_VALUE ? -999 : daysToMaturity, maturityLevel)); @@ -561,7 +560,7 @@ public class FinancingController { totalUnpaid = Money.add(totalUnpaid, unpaid); if (f.getRate() != null) { weightedRateSum = Money.add(weightedRateSum, - unpaid.multiply(BigDecimal.valueOf(f.getRate()))); + unpaid.multiply(f.getRate())); } } @@ -590,7 +589,6 @@ public class FinancingController { * 若余量 < 0 则拒绝提交,给出明确提示,要求先调整授信或融资金额。 */ @PostMapping("/{id}/submit-approval") - @Transactional public ApiResp submitApproval(@PathVariable Long id, @RequestBody(required = false) ApprovalSubmitRequest req) { Financing f = financingRepo.findById(id) @@ -791,7 +789,7 @@ public class FinancingController { rateMap.put("7%以上", new long[]{0, 0, 0}); for (Financing f : all) { if (List.of("已结清", "已驳回").contains(nvl(f.getStatus()))) continue; - double r = f.getRate() == null ? 0 : f.getRate(); + double r = f.getRate() == null ? 0 : f.getRate().doubleValue(); String bucket = r < 3 ? "3%以下" : r < 5 ? "3%-5%" : r < 7 ? "5%-7%" : "7%以上"; long[] slot = rateMap.get(bucket); slot[0]++; @@ -807,7 +805,7 @@ public class FinancingController { // --- 高成本融资识别(年化利率 > benchmarkRate) --- List> highCost = all.stream() .filter(f -> !List.of("已结清", "已驳回").contains(nvl(f.getStatus()))) - .filter(f -> f.getRate() != null && f.getRate() > benchmarkRate) + .filter(f -> f.getRate() != null && f.getRate().doubleValue() > benchmarkRate) .map(f -> { Map m = new LinkedHashMap<>(); m.put("financingId", f.getId()); @@ -816,8 +814,9 @@ public class FinancingController { m.put("financingType", f.getFinancingType()); m.put("amount", Money.nz(f.getAmount()).doubleValue()); m.put("rate", f.getRate()); - m.put("excessBps", Math.round((f.getRate() - benchmarkRate) * 100)); - m.put("suggestion", f.getRate() - benchmarkRate > 2 ? "建议择机置换或提前还款" : "关注,可在续授信时争取降利率"); + double rateVal = f.getRate().doubleValue(); + m.put("excessBps", Math.round((rateVal - benchmarkRate) * 100)); + m.put("suggestion", rateVal - benchmarkRate > 2 ? "建议择机置换或提前还款" : "关注,可在续授信时争取降利率"); return m; }) .toList(); @@ -928,7 +927,6 @@ public class FinancingController { } @PostMapping("/{id}/legal-reviews/link") - @Transactional public ApiResp linkLegalReview(@PathVariable Long id, @RequestBody LinkLegalReviewRequest req) { if (!financingRepo.existsById(id)) { @@ -957,7 +955,6 @@ public class FinancingController { } @PostMapping("/{id}/push-cost-alloc") - @Transactional public ApiResp pushCostAlloc(@PathVariable Long id, @RequestBody(required = false) PushCostAllocRequest req) { Financing f = financingRepo.findById(id) @@ -982,7 +979,7 @@ public class FinancingController { .reduce(BigDecimal.ZERO, Money::add); // 若无还款计划,按月息估算(本金 × 年化利率 / 12) if (periodInterest.signum() == 0) { - double annualRate = f.getRate() == null ? 0.0 : f.getRate(); + double annualRate = f.getRate() == null ? 0.0 : f.getRate().doubleValue(); periodInterest = Money.of(Money.nz(f.getAmount()).doubleValue() * annualRate / 100.0 / 12.0); } diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/FinancingPolicyController.java b/oa-backend/src/main/java/com/kaidi/oa/web/FinancingPolicyController.java index 20a4a25..b39e0fc 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/FinancingPolicyController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/FinancingPolicyController.java @@ -77,6 +77,7 @@ public class FinancingPolicyController { String description, String status, String createdBy) { } + @Transactional @PostMapping public ApiResp create(@RequestBody PolicyRequest req) { if (req.ruleName() == null || req.ruleName().isBlank()) { @@ -99,6 +100,7 @@ public class FinancingPolicyController { return ApiResp.ok(policyRepo.save(p)); } + @Transactional @PatchMapping("/{id}") public ApiResp update(@PathVariable Long id, @RequestBody PolicyRequest req) { FinancingPolicy p = policyRepo.findById(id) @@ -115,7 +117,6 @@ public class FinancingPolicyController { } @DeleteMapping("/{id}") - @Transactional public ApiResp delete(@PathVariable Long id) { if (!policyRepo.existsById(id)) { throw new NotFoundException("融资政策规则不存在: " + id); @@ -148,6 +149,7 @@ public class FinancingPolicyController { * - 担保方式限制:预留(financing 暂无担保字段,返回通过)。 * hardBlock=true 规则违规时,整体 overallPassed=false,调用方可据此阻断提交。 */ + @Transactional @PostMapping("/{financingId}/compliance-check") public ApiResp complianceCheck(@PathVariable Long financingId) { Financing f = financingRepo.findById(financingId) @@ -176,7 +178,7 @@ public class FinancingPolicyController { } } case "利率上限" -> { - double rate = f.getRate() == null ? 0 : f.getRate(); + double rate = f.getRate() == null ? 0 : f.getRate().doubleValue(); double limit = rule.getLimitValue() == null ? 0 : rule.getLimitValue().doubleValue(); if (limit > 0 && rate > limit) { passed = false; diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/PmtContractFeeItemController.java b/oa-backend/src/main/java/com/kaidi/oa/web/PmtContractFeeItemController.java index eb4d417..efb56c2 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/PmtContractFeeItemController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/PmtContractFeeItemController.java @@ -114,7 +114,7 @@ public class PmtContractFeeItemController { LocalDate maturity = LocalDate.parse(contract.getMaturityDate()); long days = java.time.temporal.ChronoUnit.DAYS.between(sign, maturity); if (days > 0) { - BigDecimal rate = BigDecimal.valueOf(contract.getContractRate()).divide( + BigDecimal rate = contract.getContractRate().divide( BigDecimal.valueOf(100), 10, java.math.RoundingMode.HALF_UP); BigDecimal years = BigDecimal.valueOf(days).divide( BigDecimal.valueOf(365), 10, java.math.RoundingMode.HALF_UP); @@ -164,7 +164,6 @@ public class PmtContractFeeItemController { } @PostMapping - @Transactional public ApiResp create(@RequestBody FeeItemRequest req) { if (req.contractId() == null) { throw new ApiException(400, "contractId 不能为空"); @@ -197,7 +196,6 @@ public class PmtContractFeeItemController { } @PatchMapping("/{id}") - @Transactional public ApiResp update(@PathVariable Long id, @RequestBody FeeItemRequest req) { PmtContractFeeItem item = feeRepo.findById(id) @@ -221,7 +219,6 @@ public class PmtContractFeeItemController { } @DeleteMapping("/{id}") - @Transactional public ApiResp delete(@PathVariable Long id) { PmtContractFeeItem item = feeRepo.findById(id) .orElseThrow(() -> new NotFoundException("费用明细不存在: " + id)); diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/PmtFinancingContractController.java b/oa-backend/src/main/java/com/kaidi/oa/web/PmtFinancingContractController.java index 5036e6c..e130c58 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/PmtFinancingContractController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/PmtFinancingContractController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; import java.util.List; @@ -73,11 +74,12 @@ public class PmtFinancingContractController { public record ContractRequest( Long financingId, String contractNo, String lender, - Double contractAmount, Double contractRate, String signDate, String maturityDate, + Double contractAmount, BigDecimal contractRate, String signDate, String maturityDate, String repayMethod, String guaranteeType, String guaranteeDesc, Double contractFee, String status, String remark, String owner) { } + @Transactional @PostMapping public ApiResp create(@RequestBody ContractRequest req) { if (req.lender() == null || req.lender().isBlank()) { @@ -115,6 +117,7 @@ public class PmtFinancingContractController { return ApiResp.ok(contractRepo.save(c)); } + @Transactional @PatchMapping("/{id}") public ApiResp update(@PathVariable Long id, @RequestBody ContractRequest req) { PmtFinancingContract c = contractRepo.findById(id) @@ -138,7 +141,6 @@ public class PmtFinancingContractController { } @DeleteMapping("/{id}") - @Transactional public ApiResp delete(@PathVariable Long id) { PmtFinancingContract c = contractRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资合同不存在: " + id)); @@ -153,7 +155,6 @@ public class PmtFinancingContractController { /** 签署:草稿 → 已签署。 */ @PostMapping("/{id}/sign") - @Transactional public ApiResp sign(@PathVariable Long id) { PmtFinancingContract c = contractRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资合同不存在: " + id)); @@ -175,7 +176,6 @@ public class PmtFinancingContractController { * - drawnAmount >= contractAmount → 已用款 */ @PostMapping("/{id}/drawdown") - @Transactional public ApiResp drawdown(@PathVariable Long id, @RequestBody DrawdownRequest req) { PmtFinancingContract c = contractRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资合同不存在: " + id)); @@ -219,7 +219,6 @@ public class PmtFinancingContractController { /** 结清:将合同状态置「已结清」(通常在所有还款完成后调用)。 */ @PostMapping("/{id}/settle") - @Transactional public ApiResp settle(@PathVariable Long id) { PmtFinancingContract c = contractRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资合同不存在: " + id)); @@ -232,7 +231,6 @@ public class PmtFinancingContractController { /** 终止合同。 */ @PostMapping("/{id}/terminate") - @Transactional public ApiResp terminate(@PathVariable Long id) { PmtFinancingContract c = contractRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资合同不存在: " + id)); diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/PmtInternalTransController.java b/oa-backend/src/main/java/com/kaidi/oa/web/PmtInternalTransController.java index 7062808..7a7fea9 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/PmtInternalTransController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/PmtInternalTransController.java @@ -82,7 +82,7 @@ public class PmtInternalTransController { public record TransRequest( String transType, String payerSubject, String receiverSubject, Double amount, String bizDate, String reconPeriod, String summary, - Double interestRate, String interestFrom, String interestTo, + BigDecimal interestRate, String interestFrom, String interestTo, String createdBy) { } @@ -91,7 +91,6 @@ public class PmtInternalTransController { * 同时自动为付款方生成应付单(ArApItem T_AP)、为收款方生成应收单(ArApItem T_AR)。 */ @PostMapping - @Transactional public ApiResp create(@RequestBody TransRequest req) { if (req.payerSubject() == null || req.payerSubject().isBlank()) { throw new ApiException(400, "付款方主体(payerSubject) 不能为空"); @@ -123,7 +122,7 @@ public class PmtInternalTransController { // 利息自动计算(仅 transType=利息 且提供了利率和区间) if ("利息".equals(t.getTransType()) && req.interestRate() != null && req.interestFrom() != null && req.interestTo() != null) { - BigDecimal interest = calcInterest(Money.of(req.amount()), req.interestRate(), + BigDecimal interest = calcInterest(Money.of(req.amount()), req.interestRate().doubleValue(), req.interestFrom(), req.interestTo()); t.setInterestAmount(interest); t.setAmount(interest); // 利息单,金额即利息 @@ -166,6 +165,7 @@ public class PmtInternalTransController { return ApiResp.ok(transRepo.save(saved)); } + @Transactional @PatchMapping("/{id}") public ApiResp update(@PathVariable Long id, @RequestBody TransRequest req) { PmtInternalTrans t = transRepo.findById(id) @@ -180,7 +180,6 @@ public class PmtInternalTransController { } @DeleteMapping("/{id}") - @Transactional public ApiResp delete(@PathVariable Long id) { PmtInternalTrans t = transRepo.findById(id) .orElseThrow(() -> new NotFoundException("内部往来单不存在: " + id)); @@ -202,7 +201,6 @@ public class PmtInternalTransController { * 「有差异」状态需登记差异调整后方可结清。 */ @PostMapping("/{id}/confirm") - @Transactional public ApiResp confirm(@PathVariable Long id, @RequestBody ConfirmRequest req) { PmtInternalTrans t = transRepo.findById(id) .orElseThrow(() -> new NotFoundException("内部往来单不存在: " + id)); @@ -235,7 +233,6 @@ public class PmtInternalTransController { /** 标记差异已调整,进入可结清状态。 */ @PostMapping("/{id}/resolve-diff") - @Transactional public ApiResp resolveDiff(@PathVariable Long id, @RequestBody Map body) { PmtInternalTrans t = transRepo.findById(id) @@ -251,7 +248,6 @@ public class PmtInternalTransController { /** 手动结清内部往来单(在「已确认」或「差异已调整」状态下可执行)。 */ @PostMapping("/{id}/settle") - @Transactional public ApiResp settle(@PathVariable Long id) { PmtInternalTrans t = transRepo.findById(id) .orElseThrow(() -> new NotFoundException("内部往来单不存在: " + id)); @@ -290,7 +286,7 @@ public class PmtInternalTransController { // ---------- 利息计算(内部计息,按日) ---------- - public record InterestCalcRequest(Double principal, Double annualRate, String from, String to) { + public record InterestCalcRequest(Double principal, BigDecimal annualRate, String from, String to) { } public record InterestCalcResult(double principal, double annualRate, String from, String to, @@ -301,6 +297,7 @@ public class PmtInternalTransController { * 内部计息预览(不落库):金额 × 年化利率 / 365 × 天数。 * 支持活期(上存利率)与贷款利率,利率单位 % ,如 3.5 表示 3.5%。 */ + @Transactional @PostMapping("/calc-interest") public ApiResp calcInterestPreview(@RequestBody InterestCalcRequest req) { if (req.principal() == null || req.annualRate() == null @@ -312,9 +309,10 @@ public class PmtInternalTransController { if (days <= 0) { throw new ApiException(400, "计息截止日必须晚于起始日"); } - BigDecimal interest = calcInterest(principal, req.annualRate(), req.from(), req.to()); + double annualRateDouble = req.annualRate().doubleValue(); + BigDecimal interest = calcInterest(principal, annualRateDouble, req.from(), req.to()); return ApiResp.ok(new InterestCalcResult( - principal.doubleValue(), req.annualRate(), req.from(), req.to(), + principal.doubleValue(), annualRateDouble, req.from(), req.to(), days, interest.doubleValue())); } @@ -326,7 +324,6 @@ public class PmtInternalTransController { * 凭证生成后状态流转为「已结清」(已转凭证即代表本期利息已处理完毕)。 */ @PostMapping("/{id}/to-voucher") - @Transactional public ApiResp toVoucher(@PathVariable Long id) { PmtInternalTrans t = transRepo.findById(id) .orElseThrow(() -> new NotFoundException("内部往来单不存在: " + id)); diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/PmtLoanSchemeController.java b/oa-backend/src/main/java/com/kaidi/oa/web/PmtLoanSchemeController.java index e9962dc..a0356b6 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/PmtLoanSchemeController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/PmtLoanSchemeController.java @@ -73,18 +73,17 @@ public class PmtLoanSchemeController { public record SchemeRequest( Long financingId, String institution, String loanType, - Double amount, Double annualRate, Integer termMonths, String repayMethod, - Double handlingFee, String guaranteeType, Double guaranteeRate, + Double amount, BigDecimal annualRate, Integer termMonths, String repayMethod, + Double handlingFee, String guaranteeType, BigDecimal guaranteeRate, String drawdownConditions, String status, String remark, String owner) { } @PostMapping - @Transactional public ApiResp create(@RequestBody SchemeRequest req) { if (req.institution() == null || req.institution().isBlank()) { throw new ApiException(400, "报价机构名称(institution) 不能为空"); } - if (req.annualRate() == null || req.annualRate() < 0) { + if (req.annualRate() == null || req.annualRate().compareTo(BigDecimal.ZERO) < 0) { throw new ApiException(400, "年化利率(annualRate) 不能为空且须 >= 0"); } PmtLoanScheme s = new PmtLoanScheme(); @@ -96,7 +95,7 @@ public class PmtLoanSchemeController { s.setRepayMethod(req.repayMethod() == null ? "等额本息" : req.repayMethod()); s.setHandlingFee(Money.of(req.handlingFee())); s.setGuaranteeType(req.guaranteeType()); - s.setGuaranteeRate(req.guaranteeRate() == null ? 0.0 : req.guaranteeRate()); + s.setGuaranteeRate(req.guaranteeRate() == null ? BigDecimal.ZERO : req.guaranteeRate()); s.setDrawdownConditions(req.drawdownConditions()); s.setOwner(req.owner()); s.setStatus(req.status() == null || req.status().isBlank() ? "待比选" : req.status()); @@ -118,7 +117,6 @@ public class PmtLoanSchemeController { } @PatchMapping("/{id}") - @Transactional public ApiResp update(@PathVariable Long id, @RequestBody SchemeRequest req) { PmtLoanScheme s = schemeRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资方案不存在: " + id)); @@ -144,7 +142,6 @@ public class PmtLoanSchemeController { } @DeleteMapping("/{id}") - @Transactional public ApiResp delete(@PathVariable Long id) { PmtLoanScheme s = schemeRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资方案不存在: " + id)); @@ -162,7 +159,6 @@ public class PmtLoanSchemeController { * 同时重算各方案的综合成本率(幂等)。 */ @PostMapping("/rank") - @Transactional public ApiResp> rank(@RequestParam Long financingId) { List schemes = schemeRepo.findByFinancingId(financingId); if (schemes.isEmpty()) { @@ -172,9 +168,9 @@ public class PmtLoanSchemeController { schemes.forEach(s -> s.setEffectiveCostRate(calcEffectiveCostRate(s))); // 按综合成本升序排 schemes.sort((a, b) -> { - double ra = a.getEffectiveCostRate() == null ? Double.MAX_VALUE : a.getEffectiveCostRate(); - double rb = b.getEffectiveCostRate() == null ? Double.MAX_VALUE : b.getEffectiveCostRate(); - return Double.compare(ra, rb); + BigDecimal ra = a.getEffectiveCostRate() == null ? BigDecimal.valueOf(Double.MAX_VALUE) : a.getEffectiveCostRate(); + BigDecimal rb = b.getEffectiveCostRate() == null ? BigDecimal.valueOf(Double.MAX_VALUE) : b.getEffectiveCostRate(); + return ra.compareTo(rb); }); for (int i = 0; i < schemes.size(); i++) { schemes.get(i).setRank(i + 1); @@ -188,7 +184,6 @@ public class PmtLoanSchemeController { /** 标注推荐方案(首选)。同一 financingId 下只能有一个推荐方案;旧推荐自动清除。 */ @PostMapping("/{id}/recommend") - @Transactional public ApiResp recommend(@PathVariable Long id, @RequestBody(required = false) RecommendRequest req) { PmtLoanScheme s = schemeRepo.findById(id) @@ -212,7 +207,6 @@ public class PmtLoanSchemeController { * 同时回写 Financing 台账的 lender/rate/repayMethod,融资状态推进到「审批中」。 */ @PostMapping("/{id}/select") - @Transactional public ApiResp select(@PathVariable Long id) { PmtLoanScheme s = schemeRepo.findById(id) .orElseThrow(() -> new NotFoundException("融资方案不存在: " + id)); @@ -258,9 +252,9 @@ public class PmtLoanSchemeController { if (schemes.isEmpty()) { return ApiResp.ok(new SchemeCompareSummary(schemes, 0, 0, "")); } - double min = schemes.stream().mapToDouble(s -> s.getEffectiveCostRate() == null ? 0 : s.getEffectiveCostRate()) + double min = schemes.stream().mapToDouble(s -> s.getEffectiveCostRate() == null ? 0 : s.getEffectiveCostRate().doubleValue()) .min().orElse(0); - double max = schemes.stream().mapToDouble(s -> s.getEffectiveCostRate() == null ? 0 : s.getEffectiveCostRate()) + double max = schemes.stream().mapToDouble(s -> s.getEffectiveCostRate() == null ? 0 : s.getEffectiveCostRate().doubleValue()) .max().orElse(0); String recommended = schemes.stream() .filter(s -> Boolean.TRUE.equals(s.getRecommended())) @@ -276,11 +270,11 @@ public class PmtLoanSchemeController { * 利息按等额本息近似计算总利息;担保费按本金 × 年担保费率 × 期限(年) 计算。 * 真实 XIRR 需逐笔现金流,此处为可读近似值,误差在 0.1% 以内(满足决策比选精度)。 */ - private double calcEffectiveCostRate(PmtLoanScheme s) { + private BigDecimal calcEffectiveCostRate(PmtLoanScheme s) { double principal = s.getAmount() == null ? 0 : s.getAmount().doubleValue(); - if (principal <= 0) return 0.0; + if (principal <= 0) return BigDecimal.ZERO; int term = s.getTermMonths() == null || s.getTermMonths() <= 0 ? 12 : s.getTermMonths(); - double annualRate = s.getAnnualRate() == null ? 0 : s.getAnnualRate(); + double annualRate = s.getAnnualRate() == null ? 0 : s.getAnnualRate().doubleValue(); double monthlyRate = annualRate / 100.0 / 12.0; // 总利息(等额本息口径,兼容多还款方式近似) @@ -297,7 +291,7 @@ public class PmtLoanSchemeController { double handlingFee = s.getHandlingFee() == null ? 0 : s.getHandlingFee().doubleValue(); // 担保费(年化率 × 期限年数 × 本金) - double guaranteeRate = s.getGuaranteeRate() == null ? 0 : s.getGuaranteeRate(); + double guaranteeRate = s.getGuaranteeRate() == null ? 0 : s.getGuaranteeRate().doubleValue(); double years = term / 12.0; double guaranteeCost = principal * guaranteeRate / 100.0 * years; @@ -305,6 +299,6 @@ public class PmtLoanSchemeController { // 年化综合成本率(百分比) double effectiveRate = (totalCost / principal) / years * 100.0; - return BigDecimal.valueOf(effectiveRate).setScale(4, RoundingMode.HALF_UP).doubleValue(); + return BigDecimal.valueOf(effectiveRate).setScale(4, RoundingMode.HALF_UP); } } diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/StlDebtLedgerController.java b/oa-backend/src/main/java/com/kaidi/oa/web/StlDebtLedgerController.java index f38e73d..479e2cc 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/StlDebtLedgerController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/StlDebtLedgerController.java @@ -191,7 +191,7 @@ public class StlDebtLedgerController { activeCount++; totalDebt = Money.add(totalDebt, principal); if (f.getRate() != null) { - BigDecimal rateVal = BigDecimal.valueOf(f.getRate()); + BigDecimal rateVal = f.getRate(); rateWeightedSum = rateWeightedSum.add(principal.multiply(rateVal)); rateWeightTotal = rateWeightTotal.add(principal); } @@ -212,7 +212,7 @@ public class StlDebtLedgerController { principal.doubleValue(), remaining.doubleValue(), paidPrin.doubleValue(), paidInterest.doubleValue(), overdueAmt.doubleValue(), - f.getEndDate(), f.getRate() != null ? f.getRate() : 0.0, + f.getEndDate(), f.getRate() != null ? f.getRate().doubleValue() : 0.0, f.getStatus(), planRows)); } @@ -245,7 +245,6 @@ public class StlDebtLedgerController { *

凭证科目:借方=长期借款(或按融资类型映射),贷方=银行存款,状态=草稿。 */ @PostMapping("/repayments/{planId}/pay-and-voucher") - @Transactional public ApiResp payAndVoucher(@PathVariable Long planId) { RepaymentPlan plan = planRepo.findById(planId) .orElseThrow(() -> new NotFoundException("还款期次不存在: " + planId)); diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/StlFundReportController.java b/oa-backend/src/main/java/com/kaidi/oa/web/StlFundReportController.java index 7d22c31..df39f19 100644 --- a/oa-backend/src/main/java/com/kaidi/oa/web/StlFundReportController.java +++ b/oa-backend/src/main/java/com/kaidi/oa/web/StlFundReportController.java @@ -434,7 +434,7 @@ public class StlFundReportController { if (ls.getAnnualRate() == null || ls.getAmount() == null) continue; // 年利息 = 贷款金额 × 年化利率 / 100 BigDecimal yearInterest = Money.nz(ls.getAmount()) - .multiply(BigDecimal.valueOf(ls.getAnnualRate() / 100.0)) + .multiply(ls.getAnnualRate().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_UP)) .setScale(2, RoundingMode.HALF_UP); externalInterest = externalInterest.add(yearInterest); Map row = new LinkedHashMap<>(); diff --git a/oa-backend/src/main/java/com/kaidi/oa/web/SystemUpdateController.java b/oa-backend/src/main/java/com/kaidi/oa/web/SystemUpdateController.java new file mode 100644 index 0000000..43b55fd --- /dev/null +++ b/oa-backend/src/main/java/com/kaidi/oa/web/SystemUpdateController.java @@ -0,0 +1,42 @@ +package com.kaidi.oa.web; + +import com.kaidi.oa.common.ApiResp; +import com.kaidi.oa.service.SystemUpdateService; +import com.kaidi.oa.service.SystemUpdateService.UpdateStatus; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** Administrator-only API for checking and installing signed Gitea releases. */ +@RestController +@RequestMapping("/api/oa/system-update") +public class SystemUpdateController { + + private final SystemUpdateService updateService; + + public SystemUpdateController(SystemUpdateService updateService) { + this.updateService = updateService; + } + + @GetMapping("/status") + public ApiResp status() { + return ApiResp.ok(updateService.status()); + } + + @PostMapping("/check") + public ApiResp check() { + return ApiResp.ok(updateService.check()); + } + + @PostMapping("/install") + public ApiResp install(@Valid @RequestBody InstallRequest request) { + return ApiResp.ok(updateService.install(request.version())); + } + + public record InstallRequest(@NotBlank String version) { + } +} diff --git a/oa-backend/src/main/resources/application-postgres.yml b/oa-backend/src/main/resources/application-postgres.yml index cdbf1c1..778ae71 100644 --- a/oa-backend/src/main/resources/application-postgres.yml +++ b/oa-backend/src/main/resources/application-postgres.yml @@ -1,22 +1,29 @@ -# PostgreSQL profile stub. Activate with: --spring.profiles.active=postgres -# Add the Postgres driver to build.gradle before using: -# runtimeOnly 'org.postgresql:postgresql' -# -# Switching from SQLite to PostgreSQL is config-only: the JPA entities and the -# ddl-auto strategy below recreate/update the schema on the Postgres server. +# Production PostgreSQL profile. Activate with SPRING_PROFILES_ACTIVE=postgres. +# Credentials are intentionally supplied by the installer/runtime environment. spring: datasource: - url: jdbc:postgresql://localhost:5432/oa + url: ${OA_DB_URL} driver-class-name: org.postgresql.Driver - username: oa - password: oa + username: ${OA_DB_USERNAME} + password: ${OA_DB_PASSWORD} + hikari: + maximum-pool-size: ${OA_DB_POOL_MAX:20} + minimum-idle: ${OA_DB_POOL_MIN:2} + connection-timeout: 10000 + validation-timeout: 5000 jpa: hibernate: - ddl-auto: update + ddl-auto: validate database-platform: org.hibernate.dialect.PostgreSQLDialect open-in-view: false show-sql: false properties: hibernate: dialect: org.hibernate.dialect.PostgreSQLDialect + flyway: + enabled: true + locations: classpath:db/migration/postgresql + clean-disabled: true + validate-on-migrate: true + baseline-on-migrate: false diff --git a/oa-backend/src/main/resources/application.yml b/oa-backend/src/main/resources/application.yml index 9a015e9..c837e9f 100644 --- a/oa-backend/src/main/resources/application.yml +++ b/oa-backend/src/main/resources/application.yml @@ -10,17 +10,17 @@ spring: max-file-size: 50MB max-request-size: 60MB # --------------------------------------------------------------------------- - # Active datasource: SQLite (file-based, zero-setup). The MySQL and Postgres - # profiles are provided as stubs (application-mysql.yml / application-postgres.yml) - # so switching databases later is config-only: run with - # --spring.profiles.active=mysql (or postgres) - # and supply the JDBC url/credentials there. No Java code changes required. + # Local development defaults to SQLite. Production must activate the postgres + # profile and provide OA_DB_URL/OA_DB_USERNAME/OA_DB_PASSWORD. # --------------------------------------------------------------------------- datasource: url: jdbc:sqlite:./data/oa.db driver-class-name: org.sqlite.JDBC username: password: + hikari: + maximum-pool-size: 2 + minimum-idle: 1 jpa: hibernate: ddl-auto: update @@ -35,6 +35,10 @@ spring: # 逐表读取列元数据,避免 SQLite 在表数量较多时报 # "too many terms in compound SELECT"(启动期 schema 校验崩溃)。 jdbc_metadata_extraction_strategy: individually + flyway: + # SQLite remains a zero-setup local development option only. Production + # migrations are enabled by application-postgres.yml. + enabled: false # CORS origins allowed for /api/** are configured in WebConfig (CorsConfig). # Allowed: http://localhost:8080, http://localhost:5173, http://127.0.0.1:* @@ -53,3 +57,12 @@ oa: ai: api-key: "" model: claude-haiku-4-5-20251001 + update: + enabled: ${OA_UPDATE_ENABLED:false} + gitea-base-url: ${OA_UPDATE_GITEA_BASE_URL:} + repository: ${OA_UPDATE_REPOSITORY:awaioi/ERP} + channel: ${OA_UPDATE_CHANNEL:stable} + token: ${OA_UPDATE_TOKEN:} + helper-command: ${OA_UPDATE_HELPER_COMMAND:} + state-file: ${OA_UPDATE_STATE_FILE:./runtime/update-state.json} + allow-insecure-http: ${OA_UPDATE_ALLOW_INSECURE_HTTP:false} diff --git a/oa-backend/src/main/resources/db/migration/postgresql/V1__baseline.sql b/oa-backend/src/main/resources/db/migration/postgresql/V1__baseline.sql new file mode 100644 index 0000000..d09d841 --- /dev/null +++ b/oa-backend/src/main/resources/db/migration/postgresql/V1__baseline.sql @@ -0,0 +1,41248 @@ +-- Kaidi ERP PostgreSQL baseline. +-- Generated from the current Hibernate entity model on PostgreSQL 16. +-- Future schema changes must be added as V2+ migrations; do not regenerate V1. +-- +-- PostgreSQL database dump +-- + + +-- Dumped from database version 16.14 (Homebrew) +-- Dumped by pg_dump version 16.14 (Homebrew) + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- Name: SCHEMA "public"; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON SCHEMA "public" IS 'standard public schema'; + + +-- +-- Name: pg_trgm; Type: EXTENSION; Schema: -; Owner: - +-- + +CREATE EXTENSION IF NOT EXISTS "pg_trgm" WITH SCHEMA "public"; + + +-- +-- Name: EXTENSION "pg_trgm"; Type: COMMENT; Schema: -; Owner: - +-- + +COMMENT ON EXTENSION "pg_trgm" IS 'text similarity measurement and index searching based on trigrams'; + + +SET default_tablespace = ''; + +SET default_table_access_method = "heap"; + +-- +-- Name: account; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."account" ( + "balance" numeric(38,2), + "level" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "direction" character varying(255), + "name" character varying(255), + "parent_code" character varying(255) +); + + +-- +-- Name: account_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."account_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: account_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."account_id_seq" OWNED BY "public"."account"."id"; + + +-- +-- Name: admin_access_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_access_record" ( + "access_time" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approval_code" character varying(255), + "direction" character varying(255), + "gate_location" character varying(255), + "guard_name" character varying(255), + "identifier" character varying(255), + "item_desc" character varying(255), + "person_info" character varying(255), + "record_type" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: admin_access_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_access_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_access_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_access_record_id_seq" OWNED BY "public"."admin_access_record"."id"; + + +-- +-- Name: admin_ai_action_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_ai_action_log" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_id" bigint, + "error_msg" character varying(500), + "push_target" character varying(500), + "involved_depts" character varying(1000), + "result_summary" character varying(2000), + "action_status" character varying(255) NOT NULL, + "action_type" character varying(255) NOT NULL, + "ai_model" character varying(255), + "operator" character varying(255), + "report_period" character varying(255), + "source_title" character varying(255), + "source_type" character varying(255) +); + + +-- +-- Name: admin_ai_action_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_ai_action_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_ai_action_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_ai_action_log_id_seq" OWNED BY "public"."admin_ai_action_log"."id"; + + +-- +-- Name: admin_cctv_device; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_cctv_device" ( + "store_days" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "brand_model" character varying(255), + "device_code" character varying(255), + "device_name" character varying(255), + "device_type" character varying(255), + "install_date" character varying(255), + "ip_address" character varying(255), + "last_inspect_date" character varying(255), + "location" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_cctv_device_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_cctv_device_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_cctv_device_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_cctv_device_id_seq" OWNED BY "public"."admin_cctv_device"."id"; + + +-- +-- Name: admin_cleaning_schedule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_cleaning_schedule" ( + "checkin_at" timestamp(6) with time zone, + "completed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "area" character varying(255), + "cleaner" character varying(255), + "completion_note" character varying(255), + "frequency" character varying(255), + "schedule_date" character varying(255), + "shift" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_cleaning_schedule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_cleaning_schedule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_cleaning_schedule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_cleaning_schedule_id_seq" OWNED BY "public"."admin_cleaning_schedule"."id"; + + +-- +-- Name: admin_cleaning_supply; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_cleaning_supply" ( + "on_hand" double precision, + "ref_price" numeric(12,2), + "safety_stock" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "location" character varying(255), + "spec" character varying(255), + "supply_category" character varying(255) NOT NULL, + "supply_code" character varying(255) NOT NULL, + "supply_name" character varying(255) NOT NULL, + "supply_status" character varying(255) NOT NULL, + "unit_name" character varying(255) +); + + +-- +-- Name: admin_cleaning_supply_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_cleaning_supply_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_cleaning_supply_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_cleaning_supply_id_seq" OWNED BY "public"."admin_cleaning_supply"."id"; + + +-- +-- Name: admin_cleaning_supply_move; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_cleaning_supply_move" ( + "move_qty" double precision NOT NULL, + "cleaning_supply_id" bigint NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "schedule_id" bigint, + "remark" character varying(500), + "handler" character varying(255), + "move_date" character varying(255), + "move_direction" character varying(255) NOT NULL, + "source" character varying(255), + "supply_name" character varying(255) +); + + +-- +-- Name: admin_cleaning_supply_move_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_cleaning_supply_move_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_cleaning_supply_move_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_cleaning_supply_move_id_seq" OWNED BY "public"."admin_cleaning_supply_move"."id"; + + +-- +-- Name: admin_conference_material; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_conference_material" ( + "actual_qty" integer, + "plan_qty" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "meeting_id" bigint, + "updated_at" timestamp(6) with time zone, + "remark" character varying(1000), + "handler" character varying(255), + "material_name" character varying(255), + "material_type" character varying(255) NOT NULL, + "meeting_title" character varying(255) NOT NULL, + "prep_status" character varying(255) NOT NULL, + "ready_date" character varying(255), + "unit_name" character varying(255) +); + + +-- +-- Name: admin_conference_material_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_conference_material_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_conference_material_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_conference_material_id_seq" OWNED BY "public"."admin_conference_material"."id"; + + +-- +-- Name: admin_conference_staff; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_conference_staff" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "meeting_id" bigint, + "updated_at" timestamp(6) with time zone, + "remark" character varying(500), + "arrival_status" character varying(255) NOT NULL, + "dept" character varying(255), + "meeting_title" character varying(255) NOT NULL, + "phone" character varying(255), + "role_type" character varying(255) NOT NULL, + "service_time" character varying(255), + "staff_name" character varying(255) NOT NULL +); + + +-- +-- Name: admin_conference_staff_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_conference_staff_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_conference_staff_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_conference_staff_id_seq" OWNED BY "public"."admin_conference_staff"."id"; + + +-- +-- Name: admin_doc_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_doc_template" ( + "usage_count" integer NOT NULL, + "archived_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "published_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "doc_status" character varying(20) NOT NULL, + "version" character varying(20) NOT NULL, + "doc_category" character varying(50) NOT NULL, + "created_by" character varying(100), + "owner_dept" character varying(100), + "published_by" character varying(100), + "reviewed_by" character varying(100), + "template_name" character varying(200) NOT NULL, + "archive_reason" character varying(500), + "review_comment" character varying(500), + "scenario" character varying(500), + "format_spec" character varying(1000), + "usage" character varying(1000), + "template_content" "text" +); + + +-- +-- Name: admin_doc_template_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_doc_template_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_doc_template_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_doc_template_id_seq" OWNED BY "public"."admin_doc_template"."id"; + + +-- +-- Name: admin_dorm_checkin; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_dorm_checkin" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "room_id" bigint, + "actual_checkout" character varying(255), + "approver" character varying(255), + "building" character varying(255), + "checkin_date" character varying(255), + "checkout_note" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "employee" character varying(255), + "expect_checkout" character varying(255), + "phone" character varying(255), + "room_no" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_dorm_checkin_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_dorm_checkin_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_dorm_checkin_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_dorm_checkin_id_seq" OWNED BY "public"."admin_dorm_checkin"."id"; + + +-- +-- Name: admin_dorm_inspection; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_dorm_inspection" ( + "score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "actual_date" character varying(255), + "building" character varying(255), + "code" character varying(255), + "grade" character varying(255), + "hazards" character varying(255), + "inspection_type" character varying(255), + "inspector" character varying(255), + "photos" character varying(255), + "plan_date" character varying(255), + "rectified_date" character varying(255), + "rectify_by" character varying(255), + "rectify_deadline" character varying(255), + "rectify_note" character varying(255), + "rectify_requirement" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_dorm_inspection_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_dorm_inspection_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_dorm_inspection_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_dorm_inspection_id_seq" OWNED BY "public"."admin_dorm_inspection"."id"; + + +-- +-- Name: admin_dorm_repair; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_dorm_repair" ( + "satisfaction" integer, + "assigned_at" timestamp(6) with time zone, + "completed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "room_id" bigint, + "updated_at" timestamp(6) with time zone, + "assigned_to" character varying(255), + "building" character varying(255), + "code" character varying(255), + "description" character varying(255), + "fault_type" character varying(255), + "photos" character varying(255), + "repair_note" character varying(255), + "reporter" character varying(255), + "room_no" character varying(255), + "status" character varying(255), + "urgency" character varying(255) +); + + +-- +-- Name: admin_dorm_repair_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_dorm_repair_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_dorm_repair_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_dorm_repair_id_seq" OWNED BY "public"."admin_dorm_repair"."id"; + + +-- +-- Name: admin_dorm_room; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_dorm_room" ( + "beds" integer, + "occupied" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "building" character varying(255), + "facilities" character varying(255), + "room_no" character varying(255), + "room_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_dorm_room_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_dorm_room_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_dorm_room_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_dorm_room_id_seq" OWNED BY "public"."admin_dorm_room"."id"; + + +-- +-- Name: admin_dorm_utility; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_dorm_utility" ( + "elec_amount" numeric(38,2), + "elec_end" double precision, + "elec_price" numeric(38,2), + "elec_start" double precision, + "elec_usage" double precision, + "settled" boolean, + "total_amount" numeric(38,2), + "water_amount" numeric(38,2), + "water_end" double precision, + "water_price" numeric(38,2), + "water_start" double precision, + "water_usage" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "room_id" bigint, + "building" character varying(255), + "period" character varying(255), + "room_no" character varying(255), + "settle_method" character varying(255) +); + + +-- +-- Name: admin_dorm_utility_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_dorm_utility_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_dorm_utility_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_dorm_utility_id_seq" OWNED BY "public"."admin_dorm_utility"."id"; + + +-- +-- Name: admin_equip_setup; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_equip_setup" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "meeting_id" bigint, + "updated_at" timestamp(6) with time zone, + "issue_desc" character varying(2000), + "resolution" character varying(2000), + "equip_model" character varying(255), + "equip_type" character varying(255) NOT NULL, + "final_status" character varying(255), + "meeting_title" character varying(255) NOT NULL, + "setup_date" character varying(255), + "setup_result" character varying(255) NOT NULL, + "technician" character varying(255) +); + + +-- +-- Name: admin_equip_setup_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_equip_setup_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_equip_setup_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_equip_setup_id_seq" OWNED BY "public"."admin_equip_setup"."id"; + + +-- +-- Name: admin_express; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_express" ( + "freight_cost" numeric(38,2), + "weight" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "notified_at" timestamp(6) with time zone, + "picked_at" timestamp(6) with time zone, + "registered_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "carrier" character varying(255), + "code" character varying(255), + "cost_dept" character varying(255), + "direction" character varying(255), + "item_desc" character varying(255), + "recipient" character varying(255), + "recipient_address" character varying(255), + "recipient_dept" character varying(255), + "recipient_phone" character varying(255), + "registrar" character varying(255), + "remark" character varying(255), + "sender" character varying(255), + "sender_dept" character varying(255), + "status" character varying(255), + "tracking_no" character varying(255) +); + + +-- +-- Name: admin_express_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_express_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_express_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_express_id_seq" OWNED BY "public"."admin_express"."id"; + + +-- +-- Name: admin_footage_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_footage_request" ( + "approval_time" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "view_time" timestamp(6) with time zone, + "applicant" character varying(255), + "apply_date" character varying(255), + "approval_comment" character varying(255), + "approver" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "device_desc" character varying(255), + "footage_end" character varying(255), + "footage_start" character varying(255), + "operator" character varying(255), + "purpose" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_footage_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_footage_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_footage_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_footage_request_id_seq" OWNED BY "public"."admin_footage_request"."id"; + + +-- +-- Name: admin_greenery; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_greenery" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "fert_freq" character varying(255), + "last_fertilized" character varying(255), + "last_pruned" character varying(255), + "last_watered" character varying(255), + "location" character varying(255), + "maintained_by" character varying(255), + "pest_handle_note" character varying(255), + "pest_note" character varying(255), + "plant_name" character varying(255), + "rental_end" character varying(255), + "rental_start" character varying(255), + "source" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "water_freq" character varying(255) +); + + +-- +-- Name: admin_greenery_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_greenery_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_greenery_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_greenery_id_seq" OWNED BY "public"."admin_greenery"."id"; + + +-- +-- Name: admin_hygiene_inspection; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_hygiene_inspection" ( + "score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "area" character varying(255), + "grade" character varying(255), + "inspect_date" character varying(255), + "inspector" character varying(255), + "issues" character varying(255), + "photos" character varying(255), + "rectified_date" character varying(255), + "rectify_by" character varying(255), + "rectify_deadline" character varying(255), + "rectify_note" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_hygiene_inspection_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_hygiene_inspection_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_hygiene_inspection_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_hygiene_inspection_id_seq" OWNED BY "public"."admin_hygiene_inspection"."id"; + + +-- +-- Name: admin_official_doc_tpl; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_official_doc_tpl" ( + "ai_draft_enabled" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "body_content" character varying(8000), + "approval_flow_id" character varying(255), + "archive_path" character varying(255), + "created_by" character varying(255), + "doc_type" character varying(255), + "obsolete_date" character varying(255), + "published_by" character varying(255), + "published_date" character varying(255), + "remark" character varying(255), + "reviewed_by" character varying(255), + "status" character varying(255), + "tpl_name" character varying(255), + "tpl_no" character varying(255), + "use_case" character varying(255), + "version_no" character varying(255) +); + + +-- +-- Name: admin_official_doc_tpl_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_official_doc_tpl_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_official_doc_tpl_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_official_doc_tpl_id_seq" OWNED BY "public"."admin_official_doc_tpl"."id"; + + +-- +-- Name: admin_patrol_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_patrol_log" ( + "has_anomaly" boolean, + "checkin_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "point_id" bigint, + "anomaly_desc" character varying(255), + "anomaly_photos" character varying(255), + "guard" character varying(255), + "handle_result" character varying(255), + "patrol_date" character varying(255), + "point_name" character varying(255), + "shift" character varying(255) +); + + +-- +-- Name: admin_patrol_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_patrol_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_patrol_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_patrol_log_id_seq" OWNED BY "public"."admin_patrol_log"."id"; + + +-- +-- Name: admin_patrol_point; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_patrol_point" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "code_type" character varying(255), + "location" character varying(255), + "name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_patrol_point_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_patrol_point_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_patrol_point_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_patrol_point_id_seq" OWNED BY "public"."admin_patrol_point"."id"; + + +-- +-- Name: admin_procurement_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_procurement_request" ( + "budget_amount" numeric(38,2), + "qty" double precision, + "approved_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "applicant" character varying(255), + "approve_opinion" character varying(255), + "approver" character varying(255), + "batch_no" character varying(255), + "category" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "expect_date" character varying(255), + "purpose" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supply_name" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: admin_procurement_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_procurement_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_procurement_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_procurement_request_id_seq" OWNED BY "public"."admin_procurement_request"."id"; + + +-- +-- Name: admin_quiz_question; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_quiz_question" ( + "score" integer, + "course_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "correct_answer" character varying(2000), + "explanation" character varying(2000), + "question_text" character varying(2000), + "difficulty" character varying(255), + "option_a" character varying(255), + "option_b" character varying(255), + "option_c" character varying(255), + "option_d" character varying(255), + "question_source" character varying(255), + "question_type" character varying(255), + "status" character varying(255), + "target_position" character varying(255) +); + + +-- +-- Name: admin_quiz_question_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_quiz_question_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_quiz_question_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_quiz_question_id_seq" OWNED BY "public"."admin_quiz_question"."id"; + + +-- +-- Name: admin_quota; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_quota" ( + "monthly_limit" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supply_id" bigint, + "dept" character varying(255), + "post" character varying(255), + "remark" character varying(255), + "supply_name" character varying(255) +); + + +-- +-- Name: admin_quota_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_quota_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_quota_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_quota_id_seq" OWNED BY "public"."admin_quota"."id"; + + +-- +-- Name: admin_reception; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_reception" ( + "accommodation_cost" numeric(38,2), + "dining_cost" numeric(38,2), + "gift_cost" numeric(38,2), + "guest_count" integer, + "need_accommodation" boolean, + "need_dining" boolean, + "need_gift" boolean, + "need_meeting_room" boolean, + "need_vehicle" boolean, + "other_cost" numeric(38,2), + "total_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "meeting_id" bigint, + "updated_at" timestamp(6) with time zone, + "applicant" character varying(255), + "approve_opinion" character varying(255), + "arrangement" character varying(255), + "code" character varying(255), + "cost_center" character varying(255), + "dept" character varying(255), + "end_date" character varying(255), + "guest_name" character varying(255), + "level" character varying(255), + "purpose" character varying(255), + "remark" character varying(255), + "start_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_reception_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_reception_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_reception_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_reception_id_seq" OWNED BY "public"."admin_reception"."id"; + + +-- +-- Name: admin_recurring_booking; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_recurring_booking" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "room_id" bigint, + "updated_at" timestamp(6) with time zone, + "attendees" character varying(2000), + "booking_status" character varying(255) NOT NULL, + "effect_from" character varying(255) NOT NULL, + "effect_to" character varying(255), + "end_time" character varying(255) NOT NULL, + "last_expanded_date" character varying(255), + "organizer" character varying(255), + "recur_param" character varying(255), + "recur_type" character varying(255) NOT NULL, + "rule_name" character varying(255) NOT NULL, + "start_time" character varying(255) NOT NULL, + "subject" character varying(255) NOT NULL +); + + +-- +-- Name: admin_recurring_booking_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_recurring_booking_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_recurring_booking_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_recurring_booking_id_seq" OWNED BY "public"."admin_recurring_booking"."id"; + + +-- +-- Name: admin_requisition; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_requisition" ( + "month_used" double precision, + "over_quota" boolean, + "qty" double precision, + "quota_limit" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "stock_move_id" bigint, + "supply_id" bigint, + "applicant" character varying(255), + "apply_date" character varying(255), + "approve_comment" character varying(255), + "approver" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "post" character varying(255), + "purpose" character varying(255), + "status" character varying(255), + "supply_name" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: admin_requisition_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_requisition_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_requisition_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_requisition_id_seq" OWNED BY "public"."admin_requisition"."id"; + + +-- +-- Name: admin_security_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_security_event" ( + "police_reported" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "closure_date" character varying(255), + "closure_note" character varying(255), + "code" character varying(255), + "description" character varying(255), + "event_time" character varying(255), + "event_type" character varying(255), + "evidence_photos" character varying(255), + "handle_measures" character varying(255), + "handler" character varying(255), + "location" character varying(255), + "parties" character varying(255), + "reporter" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_security_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_security_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_security_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_security_event_id_seq" OWNED BY "public"."admin_security_event"."id"; + + +-- +-- Name: admin_shuttle_bus; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_shuttle_bus" ( + "booked_count" integer, + "seats" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "departure_time" character varying(255), + "driver" character varying(255), + "end_stop" character varying(255), + "remark" character varying(255), + "return_time" character varying(255), + "route_name" character varying(255), + "run_days" character varying(255), + "start_stop" character varying(255), + "status" character varying(255), + "stops" character varying(255), + "vehicle_plate" character varying(255) +); + + +-- +-- Name: admin_shuttle_bus_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_shuttle_bus_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_shuttle_bus_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_shuttle_bus_id_seq" OWNED BY "public"."admin_shuttle_bus"."id"; + + +-- +-- Name: admin_shuttle_passenger; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_shuttle_passenger" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "shuttle_id" bigint, + "board_stop" character varying(255), + "dept" character varying(255), + "direction" character varying(255), + "passenger" character varying(255), + "ride_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: admin_shuttle_passenger_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_shuttle_passenger_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_shuttle_passenger_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_shuttle_passenger_id_seq" OWNED BY "public"."admin_shuttle_passenger"."id"; + + +-- +-- Name: admin_stock_move; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_stock_move" ( + "amount" numeric(38,2), + "qty" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "requisition_id" bigint, + "supply_id" bigint, + "batch_no" character varying(255), + "dept" character varying(255), + "direction" character varying(255), + "expire_date" character varying(255), + "handler" character varying(255), + "move_date" character varying(255), + "project" character varying(255), + "remark" character varying(255), + "supplier" character varying(255), + "supply_code" character varying(255), + "supply_name" character varying(255) +); + + +-- +-- Name: admin_stock_move_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_stock_move_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_stock_move_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_stock_move_id_seq" OWNED BY "public"."admin_stock_move"."id"; + + +-- +-- Name: admin_supply; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_supply" ( + "batch_managed" boolean, + "on_hand" double precision, + "ref_price" numeric(38,2), + "safety_stock" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "default_dept" character varying(255), + "name" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: admin_supply_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_supply_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_supply_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_supply_id_seq" OWNED BY "public"."admin_supply"."id"; + + +-- +-- Name: admin_training_course; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_training_course" ( + "capacity_limit" integer, + "duration_hours" double precision, + "enrolled_count" integer, + "pass_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "assess_method" character varying(255), + "course_code" character varying(255), + "enroll_deadline" character varying(255), + "lecturer" character varying(255), + "materials" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "target_dept" character varying(255), + "target_position" character varying(255), + "title" character varying(255), + "train_date" character varying(255), + "training_type" character varying(255), + "venue" character varying(255) +); + + +-- +-- Name: admin_training_course_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_training_course_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_training_course_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_training_course_id_seq" OWNED BY "public"."admin_training_course"."id"; + + +-- +-- Name: admin_training_enrollment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_training_enrollment" ( + "passed" boolean NOT NULL, + "progress_pct" integer, + "score" integer, + "signed_in" boolean NOT NULL, + "course_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "sign_in_time" timestamp(6) with time zone, + "dept" character varying(255), + "enroll_date" character varying(255), + "position" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "trainee_name" character varying(255), + "trainee_no" character varying(255) +); + + +-- +-- Name: admin_training_enrollment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_training_enrollment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_training_enrollment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_training_enrollment_id_seq" OWNED BY "public"."admin_training_enrollment"."id"; + + +-- +-- Name: admin_vehicle; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_vehicle" ( + "odometer" double precision, + "seats" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "brand" character varying(255), + "driver" character varying(255), + "inspection_due" character varying(255), + "insurance_due" character varying(255), + "maintenance_due" character varying(255), + "model" character varying(255), + "plate" character varying(255), + "purchase_date" character varying(255), + "status" character varying(255), + "usage" character varying(255) +); + + +-- +-- Name: admin_vehicle_dispatch; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_vehicle_dispatch" ( + "end_odometer" double precision, + "fuel_cost" numeric(38,2), + "fuel_liters" double precision, + "fuel_per100km" double precision, + "mileage" double precision, + "parking_fee" numeric(38,2), + "passengers" integer, + "start_odometer" double precision, + "toll_fee" numeric(38,2), + "urgent" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "vehicle_id" bigint, + "applicant" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "driver" character varying(255), + "end_time" character varying(255), + "from_place" character varying(255), + "reason" character varying(255), + "start_time" character varying(255), + "status" character varying(255), + "to_place" character varying(255), + "vehicle_plate" character varying(255) +); + + +-- +-- Name: admin_vehicle_dispatch_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_vehicle_dispatch_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_vehicle_dispatch_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_vehicle_dispatch_id_seq" OWNED BY "public"."admin_vehicle_dispatch"."id"; + + +-- +-- Name: admin_vehicle_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_vehicle_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_vehicle_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_vehicle_id_seq" OWNED BY "public"."admin_vehicle"."id"; + + +-- +-- Name: admin_vehicle_violation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_vehicle_violation" ( + "deduct_points" integer, + "fine" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "notified_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "vehicle_id" bigint, + "description" character varying(255), + "driver" character varying(255), + "handle_note" character varying(255), + "location" character varying(255), + "plate" character varying(255), + "status" character varying(255), + "violation_date" character varying(255), + "violation_type" character varying(255) +); + + +-- +-- Name: admin_vehicle_violation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_vehicle_violation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_vehicle_violation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_vehicle_violation_id_seq" OWNED BY "public"."admin_vehicle_violation"."id"; + + +-- +-- Name: admin_visitor; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."admin_visitor" ( + "companions" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "checkin_time" character varying(255), + "checkout_time" character varying(255), + "code" character varying(255), + "company" character varying(255), + "host" character varying(255), + "host_dept" character varying(255), + "host_note" character varying(255), + "id_card" character varying(255), + "pass_code" character varying(255), + "phone" character varying(255), + "reason" character varying(255), + "status" character varying(255), + "visit_time" character varying(255), + "visitor_name" character varying(255) +); + + +-- +-- Name: admin_visitor_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."admin_visitor_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: admin_visitor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."admin_visitor_id_seq" OWNED BY "public"."admin_visitor"."id"; + + +-- +-- Name: announcement; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."announcement" ( + "is_top" boolean, + "id" bigint NOT NULL, + "published_at" timestamp(6) with time zone, + "publish_range" character varying(1000), + "author" character varying(255), + "category" character varying(255), + "title" character varying(255), + "content" "text" +); + + +-- +-- Name: announcement_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."announcement_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: announcement_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."announcement_id_seq" OWNED BY "public"."announcement"."id"; + + +-- +-- Name: annual_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."annual_report" ( + "fiscal_year" integer, + "invention_patent_count" integer, + "patent_count" integer, + "rd_expense_amount" numeric(38,2), + "rd_expense_rate" numeric(38,2), + "rd_project_count" integer, + "revenue_amount" numeric(38,2), + "staff_rd_count" integer, + "staff_rd_rate" numeric(38,2), + "staff_total_count" integer, + "tech_achievement_count" integer, + "tech_contract_amount" numeric(38,2), + "validation_passed" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "code" character varying(255), + "deadline" character varying(255), + "owner" character varying(255), + "report_name" character varying(255), + "report_target" character varying(255), + "report_type" character varying(255), + "review_note" character varying(255), + "status" character varying(255), + "key_indicator_summary" "text", + "remark" "text", + "validation_result" "text" +); + + +-- +-- Name: annual_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."annual_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: annual_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."annual_report_id_seq" OWNED BY "public"."annual_report"."id"; + + +-- +-- Name: ar_ap_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ar_ap_item" ( + "amount" numeric(38,2), + "unwritten_off" numeric(38,2), + "written_off" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "invoice_id" bigint, + "ar_ap_type" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "due_date" character varying(255), + "owner" character varying(255), + "party_name" character varying(255), + "related_ref" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ar_ap_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ar_ap_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ar_ap_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ar_ap_item_id_seq" OWNED BY "public"."ar_ap_item"."id"; + + +-- +-- Name: archive; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive" ( + "created_at" timestamp(6) with time zone, + "file_size" bigint NOT NULL, + "id" bigint NOT NULL, + "source_id" bigint, + "stored_file_id" bigint, + "access_level" character varying(255), + "archive_date" character varying(255), + "category" character varying(255), + "file_name" character varying(255), + "file_type" character varying(255), + "file_url" character varying(255), + "source_type" character varying(255), + "summary" character varying(255), + "tags" character varying(255), + "title" character varying(255), + "uploader" character varying(255) +); + + +-- +-- Name: archive_access_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_access_log" ( + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "action" character varying(255), + "archive_title" character varying(255), + "detail" character varying(255), + "ip" character varying(255), + "occurred_at" character varying(255), + "operator" character varying(255), + "operator_dept" character varying(255) +); + + +-- +-- Name: archive_access_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_access_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_access_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_access_log_id_seq" OWNED BY "public"."archive_access_log"."id"; + + +-- +-- Name: archive_acl; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_acl" ( + "can_delete" boolean, + "can_download" boolean, + "can_edit" boolean, + "can_grant" boolean, + "can_preview" boolean, + "can_print" boolean, + "can_view" boolean, + "enabled" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "target_id" bigint, + "expire_date" character varying(255), + "grant_date" character varying(255), + "granted_by" character varying(255), + "grantee_key" character varying(255), + "grantee_type" character varying(255), + "remark" character varying(255), + "target_name" character varying(255), + "target_type" character varying(255) +); + + +-- +-- Name: archive_acl_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_acl_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_acl_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_acl_id_seq" OWNED BY "public"."archive_acl"."id"; + + +-- +-- Name: archive_backup_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_backup_log" ( + "archive_count" bigint, + "created_at" timestamp(6) with time zone, + "duration_seconds" bigint, + "file_size_bytes" bigint, + "id" bigint NOT NULL, + "backup_path" character varying(255), + "backup_status" character varying(255), + "backup_type" character varying(255), + "executor_node" character varying(255), + "finished_at" character varying(255), + "result_msg" character varying(255), + "started_at" character varying(255), + "trigger_mode" character varying(255) +); + + +-- +-- Name: archive_backup_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_backup_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_backup_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_backup_log_id_seq" OWNED BY "public"."archive_backup_log"."id"; + + +-- +-- Name: archive_borrow; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_borrow" ( + "renew_count" integer NOT NULL, + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "apply_date" character varying(255), + "approval_level" character varying(255), + "approve_opinion" character varying(255), + "approver" character varying(255), + "archive_title" character varying(255), + "borrow_type" character varying(255), + "borrower" character varying(255), + "borrower_dept" character varying(255), + "code" character varying(255), + "due_date" character varying(255), + "purpose" character varying(255), + "renewed_due_date" character varying(255), + "return_check" character varying(255), + "return_date" character varying(255), + "sec_level" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: archive_borrow_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_borrow_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_borrow_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_borrow_id_seq" OWNED BY "public"."archive_borrow"."id"; + + +-- +-- Name: archive_category; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_category" ( + "enabled" boolean, + "retention_years" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "parent_id" bigint, + "code_prefix" character varying(255), + "default_sec_level" character varying(255), + "meta_fields" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "retention_type" character varying(255) +); + + +-- +-- Name: archive_category_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_category_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_category_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_category_id_seq" OWNED BY "public"."archive_category"."id"; + + +-- +-- Name: archive_comment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_comment" ( + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "author" character varying(255), + "content" character varying(255) +); + + +-- +-- Name: archive_comment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_comment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_comment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_comment_id_seq" OWNED BY "public"."archive_comment"."id"; + + +-- +-- Name: archive_destruction; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_destruction" ( + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "target_item_id" bigint, + "applicant" character varying(255), + "apply_date" character varying(255), + "appraisal_opinion" character varying(255), + "appraisal_result" character varying(255), + "appraiser" character varying(255), + "approve_opinion" character varying(255), + "approver" character varying(255), + "archive_title" character varying(255), + "cert_no" character varying(255), + "code" character varying(255), + "disposal_mode" character varying(255), + "execute_date" character varying(255), + "executor" character varying(255), + "extended_due_date" character varying(255), + "proof_url" character varying(255), + "reason" character varying(255), + "retention_due_date" character varying(255), + "sec_level" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: archive_destruction_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_destruction_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_destruction_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_destruction_id_seq" OWNED BY "public"."archive_destruction"."id"; + + +-- +-- Name: archive_drill_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_drill_record" ( + "actual_rpo_minutes" integer, + "actual_rto_minutes" integer, + "pass_flag" boolean, + "target_rpo_minutes" integer, + "target_rto_minutes" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_end_time" character varying(255), + "actual_start_time" character varying(255), + "backup_ref" character varying(255), + "drill_code" character varying(255), + "drill_name" character varying(255), + "drill_status" character varying(255), + "drill_type" character varying(255), + "evidence_url" character varying(255), + "improvements" character varying(255), + "leader" character varying(255), + "next_drill_date" character varying(255), + "participants" character varying(255), + "planned_date" character varying(255), + "result_summary" character varying(255) +); + + +-- +-- Name: archive_drill_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_drill_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_drill_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_drill_record_id_seq" OWNED BY "public"."archive_drill_record"."id"; + + +-- +-- Name: archive_hash_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_hash_record" ( + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "file_size" bigint, + "id" bigint NOT NULL, + "verified_at" timestamp(6) with time zone, + "hash_val" character varying(256), + "verify_hash" character varying(256), + "algorithm" character varying(255), + "archive_title" character varying(255), + "operator" character varying(255), + "source" character varying(255), + "src_url" character varying(255), + "verify_status" character varying(255) +); + + +-- +-- Name: archive_hash_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_hash_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_hash_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_hash_record_id_seq" OWNED BY "public"."archive_hash_record"."id"; + + +-- +-- Name: archive_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_id_seq" OWNED BY "public"."archive"."id"; + + +-- +-- Name: archive_physical_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_physical_item" ( + "item_count" integer, + "created_at" timestamp(6) with time zone, + "destruction_id" bigint, + "id" bigint NOT NULL, + "vault_id" bigint, + "barcode" character varying(255), + "box_no" character varying(255), + "category_name" character varying(255), + "code" character varying(255), + "col_no" character varying(255), + "items_json" character varying(255), + "rack_no" character varying(255), + "remark" character varying(255), + "room_no" character varying(255), + "row_no" character varying(255), + "sec_level" character varying(255), + "shelved_by" character varying(255), + "shelved_date" character varying(255), + "status" character varying(255), + "title" character varying(255), + "vault_name" character varying(255) +); + + +-- +-- Name: archive_physical_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_physical_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_physical_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_physical_item_id_seq" OWNED BY "public"."archive_physical_item"."id"; + + +-- +-- Name: archive_repair_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_repair_record" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "item_id" bigint, + "archive_title" character varying(255), + "code" character varying(255), + "damage_desc" character varying(255), + "damage_type" character varying(255), + "repair_date" character varying(255), + "repair_method" character varying(255), + "repair_result" character varying(255), + "repairer" character varying(255), + "report_date" character varying(255), + "reporter" character varying(255), + "severity" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: archive_repair_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_repair_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_repair_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_repair_record_id_seq" OWNED BY "public"."archive_repair_record"."id"; + + +-- +-- Name: archive_reservation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_reservation" ( + "queue_no" integer, + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "archive_title" character varying(255), + "code" character varying(255), + "notify_date" character varying(255), + "purpose" character varying(255), + "requester" character varying(255), + "requester_dept" character varying(255), + "reserve_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: archive_reservation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_reservation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_reservation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_reservation_id_seq" OWNED BY "public"."archive_reservation"."id"; + + +-- +-- Name: archive_submission; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_submission" ( + "archive_id" bigint, + "category_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "apply_date" character varying(255), + "archive_code" character varying(255), + "archive_scope" character varying(255), + "category_name" character varying(255), + "file_type" character varying(255), + "formed_date" character varying(255), + "meta_json" character varying(255), + "retention_due_date" character varying(255), + "review_date" character varying(255), + "review_opinion" character varying(255), + "reviewer" character varying(255), + "sec_level" character varying(255), + "source_dept" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: archive_submission_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_submission_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_submission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_submission_id_seq" OWNED BY "public"."archive_submission"."id"; + + +-- +-- Name: archive_vault; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_vault" ( + "capacity" integer, + "enabled" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cloud_id" character varying(255), + "code" character varying(255), + "dim_dept" character varying(255), + "dim_retention" character varying(255), + "dim_sec_level" character varying(255), + "dim_year" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "room_no" character varying(255), + "store_type" character varying(255) +); + + +-- +-- Name: archive_vault_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_vault_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_vault_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_vault_id_seq" OWNED BY "public"."archive_vault"."id"; + + +-- +-- Name: archive_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."archive_version" ( + "is_current" boolean, + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "stored_file_id" bigint, + "archive_title" character varying(255), + "author" character varying(255), + "change_note" character varying(255), + "file_name" character varying(255), + "status" character varying(255), + "version_date" character varying(255), + "version_no" character varying(255) +); + + +-- +-- Name: archive_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."archive_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: archive_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."archive_version_id_seq" OWNED BY "public"."archive_version"."id"; + + +-- +-- Name: audit_annual_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_annual_plan" ( + "budget" numeric(38,2), + "approved_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "linked_project_id" bigint, + "approver" character varying(255), + "audit_type" character varying(255), + "auditee" character varying(255), + "basis" character varying(255), + "importance" character varying(255), + "lead_auditor" character varying(255), + "notes" character varying(255), + "plan_no" character varying(255), + "planned_end_date" character varying(255), + "planned_start_date" character varying(255), + "risk_level" character varying(255), + "status" character varying(255), + "team_members" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: audit_annual_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_annual_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_annual_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_annual_plan_id_seq" OWNED BY "public"."audit_annual_plan"."id"; + + +-- +-- Name: audit_archive; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_archive" ( + "retention_year" integer NOT NULL, + "archived_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "archive_no" character varying(255), + "archive_type" character varying(255), + "archiver" character varying(255), + "audit_type" character varying(255), + "auditee" character varying(255), + "description" character varying(255), + "file_hash" character varying(255), + "file_ref" character varying(255), + "keywords" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "tags" character varying(255), + "title" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: audit_archive_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_archive_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_archive_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_archive_id_seq" OWNED BY "public"."audit_archive"."id"; + + +-- +-- Name: audit_auditor_profile; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_auditor_profile" ( + "workload_pct" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "auditor_type" character varying(255), + "available_from" character varying(255), + "available_to" character varying(255), + "certifications" character varying(255), + "contact_email" character varying(255), + "current_project" character varying(255), + "employee_no" character varying(255), + "interest_conflict_units" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "specialties" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: audit_auditor_profile_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_auditor_profile_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_auditor_profile_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_auditor_profile_id_seq" OWNED BY "public"."audit_auditor_profile"."id"; + + +-- +-- Name: audit_continuous_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_continuous_log" ( + "anomaly_count" integer NOT NULL, + "audit_handled" boolean, + "total_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "analysis_module" character varying(255), + "analysis_period" character varying(255), + "detail" "text", + "risk_level" character varying(255), + "run_date" character varying(255) +); + + +-- +-- Name: audit_continuous_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_continuous_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_continuous_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_continuous_log_id_seq" OWNED BY "public"."audit_continuous_log"."id"; + + +-- +-- Name: audit_economic_responsibility; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_economic_responsibility" ( + "asset_loss" numeric(38,2), + "cost_summary" numeric(38,2), + "revenue_summary" numeric(38,2), + "violation_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "data_collected_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "audit_no" character varying(255), + "audit_type" character varying(255), + "auditee" character varying(255), + "data_snapshot" character varying(255), + "evaluation_detail" character varying(255), + "evaluation_result" character varying(255), + "lead_auditor" character varying(255), + "period" character varying(255), + "post" character varying(255), + "recommendation" character varying(255), + "report_date" character varying(255), + "report_drafter" character varying(255), + "status" character varying(255), + "target" character varying(255), + "trigger_reason" character varying(255) +); + + +-- +-- Name: audit_economic_responsibility_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_economic_responsibility_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_economic_responsibility_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_economic_responsibility_id_seq" OWNED BY "public"."audit_economic_responsibility"."id"; + + +-- +-- Name: audit_evidence; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_evidence" ( + "key_evidence" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "finding_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "work_paper_id" bigint, + "description" character varying(2048), + "keywords" character varying(2048), + "category" character varying(255), + "collect_date" character varying(255), + "collected_by" character varying(255), + "evidence_no" character varying(255), + "file_hash" character varying(255), + "file_name" character varying(255), + "file_ref" character varying(255), + "file_type" character varying(255), + "project_name" character varying(255), + "tags" character varying(255), + "title" character varying(255), + "watermark" character varying(255) +); + + +-- +-- Name: audit_evidence_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_evidence_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_evidence_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_evidence_id_seq" OWNED BY "public"."audit_evidence"."id"; + + +-- +-- Name: audit_finding; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_finding" ( + "amount_involved" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "rectification_id" bigint, + "auditee" character varying(255), + "auditee_feedback" character varying(255), + "auditor" character varying(255), + "category" character varying(255), + "fact_basis" character varying(255), + "finding_no" character varying(255), + "project_name" character varying(255), + "root_cause" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "title" character varying(255), + "violated_rule" character varying(255) +); + + +-- +-- Name: audit_finding_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_finding_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_finding_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_finding_id_seq" OWNED BY "public"."audit_finding"."id"; + + +-- +-- Name: audit_fraud_invest_note; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_fraud_invest_note" ( + "confidential" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "report_id" bigint, + "updated_at" timestamp(6) with time zone, + "content" character varying(5000), + "author" character varying(255), + "file_hash" character varying(255), + "file_ref" character varying(255), + "note_type" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: audit_fraud_invest_note_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_fraud_invest_note_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_fraud_invest_note_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_fraud_invest_note_id_seq" OWNED BY "public"."audit_fraud_invest_note"."id"; + + +-- +-- Name: audit_fraud_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_fraud_report" ( + "anonymous" boolean NOT NULL, + "confirmed" boolean NOT NULL, + "involved_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "accused" character varying(255), + "assignee" character varying(255), + "case_no" character varying(255), + "closed_date" character varying(255), + "conclusion" character varying(255), + "content" character varying(255), + "dept" character varying(255), + "disposition" character varying(255), + "investigate_note" character varying(255), + "report_channel" character varying(255), + "report_date" character varying(255), + "reporter" character varying(255), + "reporter_contact" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: audit_fraud_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_fraud_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_fraud_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_fraud_report_id_seq" OWNED BY "public"."audit_fraud_report"."id"; + + +-- +-- Name: audit_material_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_material_request" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "submitted_at" timestamp(6) with time zone, + "verified_at" timestamp(6) with time zone, + "auditee" character varying(255), + "description" character varying(255), + "due_date" character varying(255), + "file_hash" character varying(255), + "file_ref" character varying(255), + "item_name" character varying(255), + "item_type" character varying(255), + "project_name" character varying(255), + "reject_reason" character varying(255), + "request_no" character varying(255), + "requester" character varying(255), + "status" character varying(255), + "verifier" character varying(255) +); + + +-- +-- Name: audit_material_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_material_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_material_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_material_request_id_seq" OWNED BY "public"."audit_material_request"."id"; + + +-- +-- Name: audit_monitor_exception; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_monitor_exception" ( + "amount" numeric(38,2), + "detected_at" timestamp(6) with time zone, + "finding_id" bigint, + "id" bigint NOT NULL, + "rule_id" bigint, + "dedup_key" character varying(255), + "description" character varying(255), + "dispose_note" character varying(255), + "rule_name" character varying(255), + "rule_type" character varying(255), + "severity" character varying(255), + "source_ref" character varying(255), + "source_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: audit_monitor_exception_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_monitor_exception_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_monitor_exception_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_monitor_exception_id_seq" OWNED BY "public"."audit_monitor_exception"."id"; + + +-- +-- Name: audit_monitor_rule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_monitor_rule" ( + "enabled" boolean NOT NULL, + "last_hit_count" integer NOT NULL, + "threshold" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_run_at" timestamp(6) with time zone, + "description" character varying(255), + "domain" character varying(255), + "frequency" character varying(255), + "name" character varying(255), + "rule_type" character varying(255), + "severity" character varying(255) +); + + +-- +-- Name: audit_monitor_rule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_monitor_rule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_monitor_rule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_monitor_rule_id_seq" OWNED BY "public"."audit_monitor_rule"."id"; + + +-- +-- Name: audit_notice; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_notice" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "signed_at" timestamp(6) with time zone, + "audit_period" character varying(255), + "auditee" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "notice_no" character varying(255), + "planned_start_date" character varying(255), + "project_name" character varying(255), + "purpose" character varying(255), + "sign_note" character varying(255), + "signed_by" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: audit_notice_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_notice_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_notice_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_notice_id_seq" OWNED BY "public"."audit_notice"."id"; + + +-- +-- Name: audit_procedure; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_procedure" ( + "is_template" boolean NOT NULL, + "usage_count" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reference_links" character varying(1024), + "procedures" character varying(8192), + "audit_objective" character varying(255), + "business_cycle" character varying(255), + "last_updated_date" character varying(255), + "maintained_by" character varying(255), + "name" character varying(255), + "procedure_no" character varying(255), + "sampling_method" character varying(255) +); + + +-- +-- Name: audit_procedure_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_procedure_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_procedure_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_procedure_id_seq" OWNED BY "public"."audit_procedure"."id"; + + +-- +-- Name: audit_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_project" ( + "findings" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "audit_type" character varying(255), + "auditee" character varying(255), + "lead_auditor" character varying(255), + "name" character varying(255), + "period" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: audit_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_project_id_seq" OWNED BY "public"."audit_project"."id"; + + +-- +-- Name: audit_quality_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_quality_review" ( + "evidence_score" integer NOT NULL, + "improvement_required" boolean NOT NULL, + "overall_score" integer NOT NULL, + "procedure_score" integer NOT NULL, + "workpaper_score" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "evidence_comment" character varying(255), + "improvement_items" character varying(255), + "overall_comment" character varying(255), + "overall_result" character varying(255), + "procedure_comment" character varying(255), + "project_name" character varying(255), + "review_date" character varying(255), + "review_no" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "workpaper_comment" character varying(255) +); + + +-- +-- Name: audit_quality_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_quality_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_quality_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_quality_review_id_seq" OWNED BY "public"."audit_quality_review"."id"; + + +-- +-- Name: audit_rectification; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_rectification" ( + "amount_involved" numeric(38,2), + "escalated" boolean NOT NULL, + "overdue" boolean NOT NULL, + "progress" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "finding_id" bigint, + "id" bigint NOT NULL, + "completed_date" character varying(255), + "dept" character varying(255), + "due_date" character varying(255), + "evidence" character varying(255), + "finding_no" character varying(255), + "owner" character varying(255), + "plan" character varying(255), + "progress_note" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "title" character varying(255), + "verifier" character varying(255), + "verify_note" character varying(255) +); + + +-- +-- Name: audit_rectification_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_rectification_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_rectification_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_rectification_id_seq" OWNED BY "public"."audit_rectification"."id"; + + +-- +-- Name: audit_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_report" ( + "approved_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "sent_at" timestamp(6) with time zone, + "approve_comment" character varying(1024), + "finding_nos" character varying(2048), + "paper_nos" character varying(2048), + "conclusion" character varying(4096), + "recommendations" character varying(4096), + "major_findings" character varying(8192), + "approver" character varying(255), + "audit_period" character varying(255), + "audit_type" character varying(255), + "auditee" character varying(255), + "prepared_by" character varying(255), + "project_name" character varying(255), + "recipients" character varying(255), + "report_no" character varying(255), + "status" character varying(255), + "template_name" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: audit_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_report_id_seq" OWNED BY "public"."audit_report"."id"; + + +-- +-- Name: audit_risk_assessment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_risk_assessment" ( + "created_at" timestamp(6) with time zone, + "finding_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "risk_id" bigint, + "original_measure" character varying(2048), + "recommendation" character varying(2048), + "assessment_detail" character varying(4096), + "assess_date" character varying(255), + "assess_no" character varying(255), + "assessor" character varying(255), + "effectiveness" character varying(255), + "finding_no" character varying(255), + "project_name" character varying(255), + "responsible_dept" character varying(255), + "risk_category" character varying(255), + "risk_level" character varying(255), + "risk_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: audit_risk_assessment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_risk_assessment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_risk_assessment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_risk_assessment_id_seq" OWNED BY "public"."audit_risk_assessment"."id"; + + +-- +-- Name: audit_work_paper; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."audit_work_paper" ( + "version" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "finding_id" bigint, + "id" bigint NOT NULL, + "last_modified_at" timestamp(6) with time zone, + "project_id" bigint, + "reviewed_at" timestamp(6) with time zone, + "review_comment" character varying(2048), + "version_history" character varying(4096), + "content" character varying(8192), + "last_modified_by" character varying(255), + "paper_no" character varying(255), + "paper_type" character varying(255), + "prepared_by" character varying(255), + "project_name" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: audit_work_paper_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."audit_work_paper_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: audit_work_paper_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."audit_work_paper_id_seq" OWNED BY "public"."audit_work_paper"."id"; + + +-- +-- Name: automation_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."automation_log" ( + "fired_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instance_id" bigint, + "target_id" bigint, + "action" character varying(255), + "detail" character varying(255), + "instance_title" character varying(255), + "rule_key" character varying(255), + "target_type" character varying(255) +); + + +-- +-- Name: automation_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."automation_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: automation_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."automation_log_id_seq" OWNED BY "public"."automation_log"."id"; + + +-- +-- Name: bank_account; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bank_account" ( + "balance" numeric(38,2), + "frozen_amount" numeric(38,2), + "in_transit_amount" numeric(38,2), + "min_reserve" numeric(38,2), + "id" bigint NOT NULL, + "account_name" character varying(255), + "account_no" character varying(255), + "account_type" character varying(255), + "auth_personnel" character varying(255), + "bank_name" character varying(255), + "company_subject" character varying(255), + "currency" character varying(255), + "last_sync_time" character varying(255), + "open_date" character varying(255), + "purpose" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: bank_account_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bank_account_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bank_account_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bank_account_id_seq" OWNED BY "public"."bank_account"."id"; + + +-- +-- Name: bid; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid" ( + "bid_amount" numeric(38,2), + "control_price" numeric(38,2), + "deposit" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "project_id" bigint, + "tender_file_id" bigint, + "bid_date" character varying(255), + "bid_method" character varying(255), + "bid_no" character varying(255), + "open_date" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "project_type" character varying(255), + "status" character varying(255), + "tenderee" character varying(255) +); + + +-- +-- Name: bid_bond; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_bond" ( + "amount" numeric(38,2), + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "expect_refund_date" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "pay_date" character varying(255), + "pay_method" character varying(255), + "payee" character varying(255), + "project_name" character varying(255), + "refund_date" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: bid_bond_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_bond_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_bond_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_bond_id_seq" OWNED BY "public"."bid_bond"."id"; + + +-- +-- Name: bid_decision; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_decision" ( + "tasks_generated" boolean, + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "attendees" character varying(255), + "bid_no" character varying(255), + "biz_opinion" character varying(255), + "cost_opinion" character varying(255), + "decision" character varying(255), + "legal_opinion" character varying(255), + "meeting_date" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "tech_opinion" character varying(255) +); + + +-- +-- Name: bid_decision_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_decision_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_decision_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_decision_id_seq" OWNED BY "public"."bid_decision"."id"; + + +-- +-- Name: bid_deposit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_deposit" ( + "amount" numeric(38,2), + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "payment_id" bigint, + "bid_no" character varying(255), + "code" character varying(255), + "due_refund_date" character varying(255), + "owner" character varying(255), + "pay_date" character varying(255), + "pay_method" character varying(255), + "project_name" character varying(255), + "refund_date" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "tenderee" character varying(255) +); + + +-- +-- Name: bid_deposit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_deposit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_deposit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_deposit_id_seq" OWNED BY "public"."bid_deposit"."id"; + + +-- +-- Name: bid_doc_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_doc_version" ( + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "finalized_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "submitted_at" timestamp(6) with time zone, + "annotations" character varying(255), + "collaborators" character varying(255), + "doc_part" character varying(255), + "doc_title" character varying(255), + "file_ref" character varying(255), + "review_comment" character varying(255), + "status" character varying(255), + "submitter" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: bid_doc_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_doc_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_doc_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_doc_version_id_seq" OWNED BY "public"."bid_doc_version"."id"; + + +-- +-- Name: bid_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_id_seq" OWNED BY "public"."bid"."id"; + + +-- +-- Name: bid_knowledge_entry; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_knowledge_entry" ( + "is_public" boolean, + "quality_score" integer, + "view_count" integer, + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "csl_project_id" bigint, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "updated_at" timestamp(6) with time zone, + "bid_file_ref" character varying(1000), + "quote_strategy" character varying(4000), + "review_notes" character varying(4000), + "content" character varying(8000), + "creator" character varying(255), + "entry_type" character varying(255), + "field" character varying(255), + "phase" character varying(255), + "project_type" character varying(255), + "region" character varying(255), + "tags" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: bid_knowledge_entry_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_knowledge_entry_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_knowledge_entry_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_knowledge_entry_id_seq" OWNED BY "public"."bid_knowledge_entry"."id"; + + +-- +-- Name: bid_loss_case; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_loss_case" ( + "control_price" numeric(38,2), + "our_bid_amount" numeric(38,2), + "our_discount_pct" double precision, + "price_gap" numeric(38,2), + "special_item_flag" boolean, + "winner_bid_amount" numeric(38,2), + "winner_discount_pct" double precision, + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "lessons" character varying(2000), + "loss_reason" character varying(255), + "open_date" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "project_type" character varying(255), + "region" character varying(255), + "tenderee" character varying(255), + "winner_name" character varying(255) +); + + +-- +-- Name: bid_loss_case_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_loss_case_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_loss_case_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_loss_case_id_seq" OWNED BY "public"."bid_loss_case"."id"; + + +-- +-- Name: bid_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_task" ( + "seq" integer, + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "decision_id" bigint, + "id" bigint NOT NULL, + "assignee" character varying(255), + "done_date" character varying(255), + "due_date" character varying(255), + "name" character varying(255), + "status" character varying(255), + "task_type" character varying(255) +); + + +-- +-- Name: bid_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_task_id_seq" OWNED BY "public"."bid_task"."id"; + + +-- +-- Name: bid_tender_collab; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_tender_collab" ( + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "stored_file_id" bigint, + "updated_at" timestamp(6) with time zone, + "review_note" character varying(1000), + "material_summary" character varying(2000), + "bid_project_name" character varying(255), + "branch_name" character varying(255), + "collab_type" character varying(255), + "due_date" character varying(255), + "hq_reviewer" character varying(255), + "status" character varying(255), + "subject" character varying(255), + "submitter" character varying(255) +); + + +-- +-- Name: bid_tender_collab_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_tender_collab_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_tender_collab_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_tender_collab_id_seq" OWNED BY "public"."bid_tender_collab"."id"; + + +-- +-- Name: bid_tender_doc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bid_tender_doc" ( + "bond_amount" numeric(38,2), + "purchase_fee" numeric(38,2), + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "bond_pay_method" character varying(255), + "bond_return_date" character varying(255), + "bond_status_val" character varying(255), + "deadline_date" character varying(255), + "doc_title" character varying(255), + "doc_type" character varying(255), + "download_date" character varying(255), + "fee_paid_status" character varying(255), + "file_ref" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: bid_tender_doc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bid_tender_doc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bid_tender_doc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bid_tender_doc_id_seq" OWNED BY "public"."bid_tender_doc"."id"; + + +-- +-- Name: biz_budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."biz_budget" ( + "budget_amount" numeric(38,2), + "used_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: biz_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."biz_budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: biz_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."biz_budget_id_seq" OWNED BY "public"."biz_budget"."id"; + + +-- +-- Name: biz_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."biz_plan" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "name" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: biz_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."biz_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: biz_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."biz_plan_id_seq" OWNED BY "public"."biz_plan"."id"; + + +-- +-- Name: biz_plan_target; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."biz_plan_target" ( + "actual_value" numeric(38,2), + "seq" integer, + "target_value" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "plan_id" bigint, + "auto_source" character varying(255), + "metric" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: biz_plan_target_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."biz_plan_target_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: biz_plan_target_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."biz_plan_target_id_seq" OWNED BY "public"."biz_plan_target"."id"; + + +-- +-- Name: biz_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."biz_record" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "data_json" character varying(8000), + "biz_type" character varying(255) +); + + +-- +-- Name: biz_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."biz_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: biz_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."biz_record_id_seq" OWNED BY "public"."biz_record"."id"; + + +-- +-- Name: blog; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."blog" ( + "comments" integer NOT NULL, + "cover" boolean NOT NULL, + "likes" integer NOT NULL, + "views" integer NOT NULL, + "author_id" bigint, + "id" bigint NOT NULL, + "summary" character varying(2000), + "author" character varying(255), + "category" character varying(255), + "date" character varying(255), + "status_id" character varying(255), + "tags" character varying(255), + "title" character varying(255), + "body" "text" +); + + +-- +-- Name: blog_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."blog_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: blog_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."blog_id_seq" OWNED BY "public"."blog"."id"; + + +-- +-- Name: bom_change_history; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bom_change_history" ( + "eco_id" bigint, + "executed_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "target_id" bigint, + "change_type" character varying(255), + "eco_code" character varying(255), + "executed_by" character varying(255), + "field_name" character varying(255), + "from_value" character varying(255), + "target_name" character varying(255), + "to_value" character varying(255) +); + + +-- +-- Name: bom_change_history_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bom_change_history_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bom_change_history_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bom_change_history_id_seq" OWNED BY "public"."bom_change_history"."id"; + + +-- +-- Name: bom_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bom_item" ( + "actual_qty" double precision NOT NULL, + "bid_qty" double precision NOT NULL, + "unit_price" numeric(38,2), + "unit_usage" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "parent_id" bigint, + "project_id" bigint, + "category" character varying(255), + "name" character varying(255), + "project_name" character varying(255), + "sign_status" character varying(255), + "status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: bom_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bom_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bom_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bom_item_id_seq" OWNED BY "public"."bom_item"."id"; + + +-- +-- Name: bom_signoff; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bom_signoff" ( + "bom_id" bigint, + "id" bigint NOT NULL, + "signed_at" timestamp(6) with time zone, + "decision" character varying(255), + "opinion" character varying(255), + "role" character varying(255), + "signer" character varying(255) +); + + +-- +-- Name: bom_signoff_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bom_signoff_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bom_signoff_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bom_signoff_id_seq" OWNED BY "public"."bom_signoff"."id"; + + +-- +-- Name: bom_variance_detail; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."bom_variance_detail" ( + "actual_labor_hours" double precision NOT NULL, + "actual_loss_rate" double precision NOT NULL, + "actual_price" numeric(38,2), + "actual_qty" double precision NOT NULL, + "input_qty" double precision NOT NULL, + "is_substitute" boolean NOT NULL, + "loss_variance" numeric(38,2), + "original_std_cost" numeric(38,2), + "price_variance" numeric(38,2), + "price_variance_rate" numeric(38,2), + "qty_variance" numeric(38,2), + "qty_variance_rate" numeric(38,2), + "routing_variance" numeric(38,2), + "std_labor_hours" double precision NOT NULL, + "std_labor_rate" numeric(38,2), + "std_loss_rate" double precision NOT NULL, + "std_price" numeric(38,2), + "std_qty" double precision NOT NULL, + "substitute_cost" numeric(38,2), + "substitute_variance" numeric(38,2), + "total_variance" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "diff_status" character varying(255), + "material_name" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "project_name" character varying(255), + "reason_note" character varying(255), + "reason_tag" character varying(255), + "work_order_code" character varying(255) +); + + +-- +-- Name: bom_variance_detail_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."bom_variance_detail_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: bom_variance_detail_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."bom_variance_detail_id_seq" OWNED BY "public"."bom_variance_detail"."id"; + + +-- +-- Name: branch_asset; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."branch_asset" ( + "accumulated_depreciation" numeric(38,2), + "amount" numeric(38,2), + "net_book_value" numeric(38,2), + "residual_rate" numeric(38,2), + "useful_life_years" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "depreciation_method" character varying(255), + "kind" character varying(255), + "last_depreciate_date" character varying(255), + "name" character varying(255), + "org" character varying(255), + "owner" character varying(255), + "purchase_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: branch_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."branch_asset_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: branch_asset_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."branch_asset_id_seq" OWNED BY "public"."branch_asset"."id"; + + +-- +-- Name: branch_budget_line; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."branch_budget_line" ( + "budget_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "hq_approved_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approval_path" character varying(255), + "budget_type" character varying(255), + "hq_approver" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "subject" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: branch_budget_line_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."branch_budget_line_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: branch_budget_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."branch_budget_line_id_seq" OWNED BY "public"."branch_budget_line"."id"; + + +-- +-- Name: branch_cost_entry; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."branch_cost_entry" ( + "cost_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "contract_no" character varying(255), + "cost_period" character varying(255), + "cost_type" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "project_no" character varying(255), + "remark" character varying(255), + "subject" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: branch_cost_entry_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."branch_cost_entry_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: branch_cost_entry_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."branch_cost_entry_id_seq" OWNED BY "public"."branch_cost_entry"."id"; + + +-- +-- Name: branch_license; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."branch_license" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "annual_inspect_due" character varying(255), + "annual_inspect_status" character varying(255), + "biz_scope" character varying(255), + "expiry_date" character varying(255), + "issue_date" character varying(255), + "license_type" character varying(255), + "name" character varying(255), + "org" character varying(255), + "owner" character varying(255), + "reg_authority" character varying(255), + "reg_no" character varying(255), + "registered_capital" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: branch_license_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."branch_license_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: branch_license_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."branch_license_id_seq" OWNED BY "public"."branch_license"."id"; + + +-- +-- Name: brand_asset; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_asset" ( + "min_quantity" integer, + "quantity" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "asset_category" character varying(255), + "code" character varying(255), + "file_url" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "review_note" character varying(255), + "review_status" character varying(255), + "reviewer" character varying(255), + "specification" character varying(255), + "status" character varying(255), + "sub_type" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: brand_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_asset_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_asset_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_asset_id_seq" OWNED BY "public"."brand_asset"."id"; + + +-- +-- Name: brand_collab_push; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_collab_push" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ref_id" bigint, + "content" "text", + "feedback" character varying(255), + "push_type" character varying(255), + "pusher" character varying(255), + "ref_type" character varying(255), + "status" character varying(255), + "subject" character varying(255), + "target_dept" character varying(255) +); + + +-- +-- Name: brand_collab_push_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_collab_push_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_collab_push_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_collab_push_id_seq" OWNED BY "public"."brand_collab_push"."id"; + + +-- +-- Name: brand_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_event" ( + "actual_attendees" integer, + "actual_cost" numeric(38,2), + "budget" numeric(38,2), + "leads_converted" integer, + "media_exposure" integer, + "scale" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "end_date" character varying(255), + "event_type" character varying(255), + "location" character varying(255), + "name" character varying(255), + "objective" character varying(255), + "owner" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: brand_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_event_id_seq" OWNED BY "public"."brand_event"."id"; + + +-- +-- Name: brand_event_material; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_event_material" ( + "actual_qty" integer, + "issued_qty" integer, + "planned_qty" integer, + "created_at" timestamp(6) with time zone, + "event_id" bigint, + "id" bigint NOT NULL, + "due_date" character varying(255), + "event_code" character varying(255), + "material_name" character varying(255), + "material_type" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier" character varying(255) +); + + +-- +-- Name: brand_event_material_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_event_material_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_event_material_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_event_material_id_seq" OWNED BY "public"."brand_event_material"."id"; + + +-- +-- Name: brand_expense; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_expense" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "payment_id" bigint, + "project_id" bigint, + "applicant" character varying(255), + "code" character varying(255), + "cost_type" character varying(255), + "description" character varying(255), + "expense_date" character varying(255), + "payee" character varying(255), + "project_code" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: brand_expense_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_expense_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_expense_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_expense_id_seq" OWNED BY "public"."brand_expense"."id"; + + +-- +-- Name: brand_honor; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_honor" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cert_file_url" character varying(255), + "expiry_date" character varying(255), + "honor_category" character varying(255), + "honor_level" character varying(255), + "honor_name" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "owner" character varying(255), + "status" character varying(255), + "usage_purpose" character varying(255) +); + + +-- +-- Name: brand_honor_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_honor_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_honor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_honor_id_seq" OWNED BY "public"."brand_honor"."id"; + + +-- +-- Name: brand_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_plan" ( + "allocated_budget" numeric(38,2), + "quarter" integer, + "total_budget" numeric(38,2), + "year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approve_opinion" character varying(255), + "approver" character varying(255), + "code" character varying(255), + "end_date" character varying(255), + "expected_effect" character varying(255), + "name" character varying(255), + "objective" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "strategy" character varying(255) +); + + +-- +-- Name: brand_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_plan_id_seq" OWNED BY "public"."brand_plan"."id"; + + +-- +-- Name: brand_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_project" ( + "budget" numeric(38,2), + "spent_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "plan_id" bigint, + "code" character varying(255), + "end_date" character varying(255), + "manager" character varying(255), + "name" character varying(255), + "plan_code" character varying(255), + "project_type" character varying(255), + "remark" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "target_audience" character varying(255) +); + + +-- +-- Name: brand_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_project_id_seq" OWNED BY "public"."brand_project"."id"; + + +-- +-- Name: brand_supplier; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."brand_supplier" ( + "is_approved" boolean, + "quality_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "proj_id" bigint, + "contact_name" character varying(255), + "contact_phone" character varying(255), + "cooperation_history" character varying(255), + "credit_code" character varying(255), + "latest_quote" character varying(255), + "license_expire_date" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "supplier_name" character varying(255), + "supplier_type" character varying(255) +); + + +-- +-- Name: brand_supplier_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."brand_supplier_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: brand_supplier_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."brand_supplier_id_seq" OWNED BY "public"."brand_supplier"."id"; + + +-- +-- Name: budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."budget" ( + "actual_amount" numeric(38,2), + "budget_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "company_subject" character varying(255), + "element" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "status" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."budget_id_seq" OWNED BY "public"."budget"."id"; + + +-- +-- Name: canteen_meal_cost; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."canteen_meal_cost" ( + "fuel_cost" numeric(38,2), + "headcount" integer, + "ingredient_cost" numeric(38,2), + "labor_cost" numeric(38,2), + "other_cost" numeric(38,2), + "over_standard" boolean, + "per_person_cost" numeric(38,2), + "standard_cost" numeric(38,2), + "total_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reception_id" bigint, + "updated_at" timestamp(6) with time zone, + "alloc_dept" character varying(255), + "cost_date" character varying(255), + "cost_subject" character varying(255), + "meal" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: canteen_meal_cost_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."canteen_meal_cost_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: canteen_meal_cost_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."canteen_meal_cost_id_seq" OWNED BY "public"."canteen_meal_cost"."id"; + + +-- +-- Name: canteen_menu; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."canteen_menu" ( + "dislikes" integer, + "likes" integer, + "price" numeric(38,2), + "published" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "dish" character varying(255), + "meal" character varying(255), + "menu_date" character varying(255), + "owner" character varying(255) +); + + +-- +-- Name: canteen_menu_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."canteen_menu_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: canteen_menu_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."canteen_menu_id_seq" OWNED BY "public"."canteen_menu"."id"; + + +-- +-- Name: canteen_sanitation_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."canteen_sanitation_record" ( + "qualified" boolean, + "retention_hours" integer, + "score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "check_date" character varying(255), + "check_type" character varying(255), + "inspector" character varying(255), + "issues" character varying(255), + "items" character varying(255), + "meal" character varying(255), + "photos" character varying(255), + "quantity" character varying(255), + "rectified_date" character varying(255), + "rectify_by" character varying(255), + "rectify_deadline" character varying(255), + "rectify_note" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: canteen_sanitation_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."canteen_sanitation_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: canteen_sanitation_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."canteen_sanitation_record_id_seq" OWNED BY "public"."canteen_sanitation_record"."id"; + + +-- +-- Name: certification; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."certification" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cert_no" character varying(255), + "expire_date" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "name" character varying(255), + "scope" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: certification_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."certification_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: certification_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."certification_id_seq" OWNED BY "public"."certification"."id"; + + +-- +-- Name: channel_publish_history; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."channel_publish_history" ( + "read_count" integer, + "share_count" integer, + "channel_id" bigint, + "content_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "channel_name" character varying(255), + "content_title" character varying(255), + "publish_date" character varying(255), + "publish_url" character varying(255), + "remark" character varying(255), + "screenshot_url" character varying(255) +); + + +-- +-- Name: channel_publish_history_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."channel_publish_history_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: channel_publish_history_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."channel_publish_history_id_seq" OWNED BY "public"."channel_publish_history"."id"; + + +-- +-- Name: chronicle_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."chronicle_event" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "event_date" character varying(255), + "importance" character varying(255), + "recorder" character varying(255), + "related_refs" character varying(255), + "title" character varying(255), + "description" "text" +); + + +-- +-- Name: chronicle_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."chronicle_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: chronicle_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."chronicle_event_id_seq" OWNED BY "public"."chronicle_event"."id"; + + +-- +-- Name: collab_doc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."collab_doc" ( + "id" bigint NOT NULL, + "owner_id" bigint, + "updated_at" timestamp(6) with time zone, + "owner" character varying(255), + "participants" character varying(255), + "status" character varying(255), + "title" character varying(255), + "comments_json" "text", + "content" "text", + "versions_json" "text" +); + + +-- +-- Name: collab_doc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."collab_doc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: collab_doc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."collab_doc_id_seq" OWNED BY "public"."collab_doc"."id"; + + +-- +-- Name: collab_doc_update; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."collab_doc_update" ( + "created_at" timestamp(6) with time zone, + "doc_id" bigint, + "id" bigint NOT NULL, + "seq" bigint, + "data" "bytea" +); + + +-- +-- Name: collab_doc_update_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."collab_doc_update_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: collab_doc_update_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."collab_doc_update_id_seq" OWNED BY "public"."collab_doc_update"."id"; + + +-- +-- Name: company_subject; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."company_subject" ( + "id" bigint NOT NULL, + "credit_code" character varying(255), + "legal_person" character varying(255), + "name" character varying(255), + "short_name" character varying(255), + "status" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: company_subject_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."company_subject_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: company_subject_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."company_subject_id_seq" OWNED BY "public"."company_subject"."id"; + + +-- +-- Name: competitor_ip; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."competitor_ip" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "competitor" character varying(255), + "import_source" character varying(255), + "ip_type" character varying(255), + "legal_status" character varying(255), + "public_date" character varying(255), + "public_no" character varying(255), + "risk_level" character varying(255), + "tech_field" character varying(255), + "title" character varying(255), + "summary" "text" +); + + +-- +-- Name: competitor_ip_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."competitor_ip_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: competitor_ip_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."competitor_ip_id_seq" OWNED BY "public"."competitor_ip"."id"; + + +-- +-- Name: completion_acceptance; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."completion_acceptance" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "accept_date" character varying(255), + "accept_type" character varying(255), + "code" character varying(255), + "conclusion" character varying(255), + "opinion" character varying(255), + "organizer" character varying(255), + "participants" character varying(255), + "pending_issues" character varying(255), + "rectify_status" character varying(255), + "remark" character varying(255), + "report_no" character varying(255), + "signer" character varying(255), + "status" character varying(255), + "supervision_project_code" character varying(255) +); + + +-- +-- Name: completion_acceptance_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."completion_acceptance_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: completion_acceptance_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."completion_acceptance_id_seq" OWNED BY "public"."completion_acceptance"."id"; + + +-- +-- Name: compliance_evaluation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."compliance_evaluation" ( + "compliant_items" integer, + "nc_items" integer, + "total_items" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_date" character varying(255), + "capa_refs" character varying(255), + "code" character varying(255), + "eval_content" character varying(255), + "eval_result" character varying(255), + "eval_scope" character varying(255), + "eval_status" character varying(255), + "eval_year" character varying(255), + "evaluator" character varying(255), + "improvement_suggestions" character varying(255), + "nc_description" character varying(255), + "planned_date" character varying(255), + "remark" character varying(255), + "report_ref" character varying(255) +); + + +-- +-- Name: compliance_evaluation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."compliance_evaluation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: compliance_evaluation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."compliance_evaluation_id_seq" OWNED BY "public"."compliance_evaluation"."id"; + + +-- +-- Name: content_piece; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."content_piece" ( + "current_level" integer, + "required_level" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "author" character varying(255), + "body" character varying(255), + "channel" character varying(255), + "code" character varying(255), + "content_type" character varying(255), + "importance" character varying(255), + "publish_date" character varying(255), + "publish_url" character varying(255), + "screenshot_url" character varying(255), + "status" character varying(255), + "tags" character varying(255), + "title" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: content_piece_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."content_piece_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: content_piece_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."content_piece_id_seq" OWNED BY "public"."content_piece"."id"; + + +-- +-- Name: content_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."content_review" ( + "level" integer, + "content_id" bigint, + "id" bigint NOT NULL, + "reviewed_at" timestamp(6) with time zone, + "action" character varying(255), + "level_name" character varying(255), + "opinion" character varying(255), + "reviewer" character varying(255) +); + + +-- +-- Name: content_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."content_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: content_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."content_review_id_seq" OWNED BY "public"."content_review"."id"; + + +-- +-- Name: content_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."content_task" ( + "content_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assignee" character varying(255), + "assignee_type" character varying(255), + "code" character varying(255), + "content_code" character varying(255), + "deliverable_url" character varying(255), + "description" character varying(255), + "due_date" character varying(255), + "issued_by" character varying(255), + "review_note" character varying(255), + "status" character varying(255), + "supplier_code" character varying(255), + "task_type" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: content_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."content_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: content_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."content_task_id_seq" OWNED BY "public"."content_task"."id"; + + +-- +-- Name: contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."contract" ( + "amount" numeric(38,2), + "invoiced_amount" numeric(38,2), + "paid_amount" numeric(38,2), + "id" bigint NOT NULL, + "parent_id" bigint, + "project_id" bigint, + "code" character varying(255), + "company_subject" character varying(255), + "custodian" character varying(255), + "name" character varying(255), + "partya" character varying(255), + "partyb" character varying(255), + "sign_date" character varying(255), + "status" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: contract_budget_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."contract_budget_review" ( + "contract_amount" numeric(38,2), + "expected_margin" numeric(38,2), + "expected_margin_rate" double precision, + "over_budget" boolean, + "over_rate" double precision, + "overridden" boolean, + "period_cost" numeric(38,2), + "ref_budget" numeric(38,2), + "tolerance_pct" double precision, + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "applicant" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "contract_name" character varying(255), + "contract_type" character varying(255), + "override_reason" character varying(255), + "partyb" character varying(255), + "project_name" character varying(255), + "review_opinion" character varying(255), + "reviewed_at" character varying(255), + "reviewer" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: contract_budget_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."contract_budget_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contract_budget_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."contract_budget_review_id_seq" OWNED BY "public"."contract_budget_review"."id"; + + +-- +-- Name: contract_change; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."contract_change" ( + "amount_after" numeric(38,2), + "amount_before" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "change_type" character varying(255), + "contract_name" character varying(255), + "effective_date" character varying(255), + "reason" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: contract_change_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."contract_change_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contract_change_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."contract_change_id_seq" OWNED BY "public"."contract_change"."id"; + + +-- +-- Name: contract_esign; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."contract_esign" ( + "contract_id" bigint, + "id" bigint NOT NULL, + "initiated_at" timestamp(6) with time zone, + "signed_at" timestamp(6) with time zone, + "contract_code" character varying(255), + "contract_name" character varying(255), + "external_seal_ref" character varying(255), + "party" character varying(255), + "remark" character varying(255), + "seal_status" character varying(255), + "serial_no" character varying(255), + "sign_status" character varying(255), + "signer" character varying(255) +); + + +-- +-- Name: contract_esign_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."contract_esign_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contract_esign_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."contract_esign_id_seq" OWNED BY "public"."contract_esign"."id"; + + +-- +-- Name: contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."contract_id_seq" OWNED BY "public"."contract"."id"; + + +-- +-- Name: contract_milestone; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."contract_milestone" ( + "amount" numeric(38,2), + "contract_id" bigint, + "id" bigint NOT NULL, + "due_date" character varying(255), + "name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: contract_milestone_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."contract_milestone_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contract_milestone_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."contract_milestone_id_seq" OWNED BY "public"."contract_milestone"."id"; + + +-- +-- Name: contract_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."contract_template" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicable_subject" character varying(255), + "contract_type" character varying(255), + "name" character varying(255), + "required_clauses" character varying(255), + "status" character varying(255), + "updated_by" character varying(255), + "version" character varying(255), + "body_template" "text" +); + + +-- +-- Name: contract_template_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."contract_template_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: contract_template_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."contract_template_id_seq" OWNED BY "public"."contract_template"."id"; + + +-- +-- Name: cost_adjust_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cost_adjust_log" ( + "amount_after" numeric(38,2), + "amount_before" numeric(38,2), + "entity_id" bigint, + "id" bigint NOT NULL, + "operated_at" timestamp(6) with time zone, + "adjust_type" character varying(255), + "approver" character varying(255), + "entity_desc" character varying(255), + "entity_type" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "reason" character varying(255), + "value_after" character varying(255), + "value_before" character varying(255) +); + + +-- +-- Name: cost_adjust_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cost_adjust_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cost_adjust_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cost_adjust_log_id_seq" OWNED BY "public"."cost_adjust_log"."id"; + + +-- +-- Name: cost_center; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cost_center" ( + "actual_total" numeric(38,2), + "budget_total" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "parent_id" bigint, + "cc_type" character varying(255), + "code" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "parent_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: cost_center_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cost_center_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cost_center_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cost_center_id_seq" OWNED BY "public"."cost_center"."id"; + + +-- +-- Name: cost_hr_dept_labor_rate; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cost_hr_dept_labor_rate" ( + "rate_per_hour" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "created_by" character varying(255), + "dept" character varying(255), + "effective_from" character varying(255), + "effective_to" character varying(255), + "position" character varying(255), + "remark" character varying(255), + "source" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: cost_hr_dept_labor_rate_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cost_hr_dept_labor_rate_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cost_hr_dept_labor_rate_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cost_hr_dept_labor_rate_id_seq" OWNED BY "public"."cost_hr_dept_labor_rate"."id"; + + +-- +-- Name: cost_inv_project_link; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cost_inv_project_link" ( + "issue_cost" numeric(38,2), + "issue_qty" double precision NOT NULL, + "receipt_cost" numeric(38,2), + "receipt_qty" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "inventory_item_id" bigint, + "last_sync_at" timestamp(6) with time zone, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "category" character varying(255), + "created_by" character varying(255), + "material_name" character varying(255), + "project_name" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "valuation_method" character varying(255) +); + + +-- +-- Name: cost_inv_project_link_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cost_inv_project_link_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cost_inv_project_link_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cost_inv_project_link_id_seq" OWNED BY "public"."cost_inv_project_link"."id"; + + +-- +-- Name: cost_procurement_bid; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cost_procurement_bid" ( + "auto_recommended" boolean, + "budget_price_variance_rate" numeric(38,2), + "budget_unit_price" numeric(38,2), + "comprehensive_score" numeric(38,2), + "delivery_score" numeric(38,2), + "final_selected" boolean, + "price_score" numeric(38,2), + "qty" double precision NOT NULL, + "quality_score" numeric(38,2), + "quoted_total_price" numeric(38,2), + "quoted_unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "purchase_order_id" bigint, + "bid_status" character varying(255), + "category" character varying(255), + "deadline" character varying(255), + "material_name" character varying(255), + "note" character varying(255), + "operator" character varying(255), + "selection_note" character varying(255), + "session_code" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier_contact" character varying(255), + "supplier_name" character varying(255), + "title" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: cost_procurement_bid_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cost_procurement_bid_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cost_procurement_bid_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cost_procurement_bid_id_seq" OWNED BY "public"."cost_procurement_bid"."id"; + + +-- +-- Name: cost_purchase_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cost_purchase_order" ( + "freight_cost" numeric(38,2), + "history_avg_price" numeric(38,2), + "landed_cost" numeric(38,2), + "last_price" numeric(38,2), + "qty" double precision NOT NULL, + "standard_price" numeric(38,2), + "std_price_variance_rate" numeric(38,2), + "total_amount" numeric(38,2), + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "apply_date" character varying(255), + "category" character varying(255), + "code" character varying(255), + "delivery_date" character varying(255), + "material_name" character varying(255), + "note" character varying(255), + "price_status" character varying(255), + "project_name" character varying(255), + "review_comment" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier_name" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: cost_purchase_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cost_purchase_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cost_purchase_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cost_purchase_order_id_seq" OWNED BY "public"."cost_purchase_order"."id"; + + +-- +-- Name: cost_reduction_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cost_reduction_item" ( + "achievement_rate" numeric(38,2), + "actual_cost" numeric(38,2), + "actual_saving" numeric(38,2), + "base_cost" numeric(38,2), + "implement_qty" double precision NOT NULL, + "target_saving" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_end_date" character varying(255), + "code" character varying(255), + "completion_note" character varying(255), + "department" character varying(255), + "description" character varying(255), + "measure_type" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "plan_end_date" character varying(255), + "plan_start_date" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "target_item" character varying(255) +); + + +-- +-- Name: cost_reduction_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cost_reduction_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cost_reduction_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cost_reduction_item_id_seq" OWNED BY "public"."cost_reduction_item"."id"; + + +-- +-- Name: countersign_vote; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."countersign_vote" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instance_id" bigint NOT NULL, + "decision" character varying(255), + "node_id" character varying(255), + "node_label" character varying(255), + "voter" character varying(255) +); + + +-- +-- Name: countersign_vote_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."countersign_vote_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: countersign_vote_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."countersign_vote_id_seq" OWNED BY "public"."countersign_vote"."id"; + + +-- +-- Name: cpc_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."cpc_version" ( + "content_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "action" character varying(255), + "change_note" character varying(255), + "operator" character varying(255), + "title_snapshot" character varying(255), + "version_label" character varying(255), + "body_snapshot" "text" +); + + +-- +-- Name: cpc_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."cpc_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: cpc_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."cpc_version_id_seq" OWNED BY "public"."cpc_version"."id"; + + +-- +-- Name: crawl_job; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crawl_job" ( + "fetched" integer NOT NULL, + "new_intel" integer NOT NULL, + "screened" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_id" bigint, + "operator" character varying(255), + "run_at" character varying(255), + "source_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: crawl_job_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crawl_job_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crawl_job_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crawl_job_id_seq" OWNED BY "public"."crawl_job"."id"; + + +-- +-- Name: crawl_source; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crawl_source" ( + "enabled" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "frequency" character varying(255), + "keywords" character varying(255), + "last_run_at" character varying(255), + "name" character varying(255), + "region" character varying(255), + "source_type" character varying(255), + "url" character varying(255) +); + + +-- +-- Name: crawl_source_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crawl_source_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crawl_source_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crawl_source_id_seq" OWNED BY "public"."crawl_source"."id"; + + +-- +-- Name: crisis_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crisis_plan" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "action_steps" character varying(255), + "creator" character varying(255), + "crisis_level" character varying(255), + "crisis_type" character varying(255), + "emergency_contacts" character varying(255), + "public_statement" character varying(255), + "scenario_name" character varying(255), + "spokesperson" character varying(255), + "status" character varying(255), + "trigger_keywords" character varying(255), + "updated_date" character varying(255) +); + + +-- +-- Name: crisis_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crisis_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crisis_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crisis_plan_id_seq" OWNED BY "public"."crisis_plan"."id"; + + +-- +-- Name: crm_bid_quote_detail; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_bid_quote_detail" ( + "amount" numeric(38,2), + "pct" double precision, + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "created_by" character varying(255), + "item_name" character varying(255), + "price_strategy" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: crm_bid_quote_detail_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_bid_quote_detail_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_bid_quote_detail_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_bid_quote_detail_id_seq" OWNED BY "public"."crm_bid_quote_detail"."id"; + + +-- +-- Name: crm_branch_lease; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_branch_lease" ( + "deposit" numeric(38,2), + "monthly_rent" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "address" character varying(255), + "contract_no" character varying(255), + "landlord" character varying(255), + "landlord_contact" character varying(255), + "landlord_phone" character varying(255), + "last_paid_date" character varying(255), + "lease_end" character varying(255), + "lease_start" character varying(255), + "next_due_date" character varying(255), + "org_unit" character varying(255), + "payment_cycle" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: crm_branch_lease_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_branch_lease_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_branch_lease_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_branch_lease_id_seq" OWNED BY "public"."crm_branch_lease"."id"; + + +-- +-- Name: crm_branch_petition; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_branch_petition" ( + "amount" numeric(38,2), + "current_step" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "step0at" timestamp(6) with time zone, + "step1at" timestamp(6) with time zone, + "step2at" timestamp(6) with time zone, + "step0comment" character varying(500), + "step1comment" character varying(500), + "step2comment" character varying(500), + "title" character varying(500), + "attachment_ids" character varying(1000), + "content" character varying(2000), + "applicant" character varying(255), + "apply_date" character varying(255), + "code" character varying(255), + "contract_no" character varying(255), + "org_unit" character varying(255), + "petition_type" character varying(255), + "status" character varying(255), + "step0approver" character varying(255), + "step1approver" character varying(255), + "step2approver" character varying(255), + "urgency" character varying(255) +); + + +-- +-- Name: crm_branch_petition_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_branch_petition_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_branch_petition_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_branch_petition_id_seq" OWNED BY "public"."crm_branch_petition"."id"; + + +-- +-- Name: crm_competitor; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_competitor" ( + "avg_discount_pct" double precision, + "total_bid_count" integer, + "win_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "qualification" character varying(500), + "remark" character varying(500), + "special_advantage" character varying(1000), + "tech_features" character varying(1000), + "weakness" character varying(1000), + "company_type" character varying(255), + "industry_scope" character varying(255), + "last_bid_date" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "pricing_strategy" character varying(255), + "region" character varying(255) +); + + +-- +-- Name: crm_competitor_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_competitor_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_competitor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_competitor_id_seq" OWNED BY "public"."crm_competitor"."id"; + + +-- +-- Name: crm_contract_approval_step; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_contract_approval_step" ( + "done" boolean NOT NULL, + "step_index" integer, + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "handled_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opinion" character varying(1000), + "action" character varying(255), + "handler" character varying(255), + "handler_role" character varying(255), + "step_name" character varying(255) +); + + +-- +-- Name: crm_contract_approval_step_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_contract_approval_step_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_contract_approval_step_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_contract_approval_step_id_seq" OWNED BY "public"."crm_contract_approval_step"."id"; + + +-- +-- Name: crm_customer_contact; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_customer_contact" ( + "is_primary" boolean, + "created_at" timestamp(6) with time zone, + "customer_id" bigint, + "id" bigint NOT NULL, + "birthday" character varying(255), + "email" character varying(255), + "name" character varying(255), + "phone" character varying(255), + "preference" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: crm_customer_contact_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_customer_contact_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_customer_contact_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_customer_contact_id_seq" OWNED BY "public"."crm_customer_contact"."id"; + + +-- +-- Name: crm_daily_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_daily_report" ( + "visit_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "expense_summary" character varying(255), + "next_plan" character varying(255), + "opportunity_progress" character varying(255), + "org_unit" character varying(255), + "period" character varying(255), + "person" character varying(255), + "remark" character varying(255), + "report_type" character varying(255), + "status" character varying(255), + "visit_summary" character varying(255) +); + + +-- +-- Name: crm_daily_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_daily_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_daily_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_daily_report_id_seq" OWNED BY "public"."crm_daily_report"."id"; + + +-- +-- Name: crm_doc_receipt; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_doc_receipt" ( + "read_flag" boolean NOT NULL, + "announcement_id" bigint, + "created_at" timestamp(6) with time zone, + "document_id" bigint, + "id" bigint NOT NULL, + "issued_at" timestamp(6) with time zone, + "read_at" timestamp(6) with time zone, + "signed_at" timestamp(6) with time zone, + "sign_note" character varying(500), + "doc_title" character varying(255), + "doc_type" character varying(255), + "issuer" character varying(255), + "org_unit" character varying(255), + "recipient" character varying(255), + "recipient_code" character varying(255), + "recipient_name" character varying(255), + "remark" character varying(255), + "sign_deadline" character varying(255), + "signer" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: crm_doc_receipt_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_doc_receipt_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_doc_receipt_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_doc_receipt_id_seq" OWNED BY "public"."crm_doc_receipt"."id"; + + +-- +-- Name: crm_imprest_fund; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_imprest_fund" ( + "amount" numeric(38,2), + "return_amount" numeric(38,2), + "settled_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "related_expense_claim_id" bigint, + "updated_at" timestamp(6) with time zone, + "purpose" character varying(1000), + "activity_date" character varying(255), + "applicant" character varying(255), + "approval_remark" character varying(255), + "code" character varying(255), + "expected_return_date" character varying(255), + "fund_type" character varying(255), + "org_unit" character varying(255), + "settled_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: crm_imprest_fund_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_imprest_fund_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_imprest_fund_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_imprest_fund_id_seq" OWNED BY "public"."crm_imprest_fund"."id"; + + +-- +-- Name: crm_opp_stage_config; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_opp_stage_config" ( + "default_probability" integer, + "disabled" boolean, + "is_final" boolean, + "sort_order" integer, + "id" bigint NOT NULL, + "description" character varying(255), + "stage_name" character varying(255) +); + + +-- +-- Name: crm_opp_stage_config_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_opp_stage_config_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_opp_stage_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_opp_stage_config_id_seq" OWNED BY "public"."crm_opp_stage_config"."id"; + + +-- +-- Name: crm_petty_cash; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_petty_cash" ( + "amount" numeric(38,2), + "pending_amount" numeric(38,2), + "verified_amount" numeric(38,2), + "approved_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "parent_borrow_id" bigint, + "project_id" bigint, + "approve_comment" character varying(500), + "purpose" character varying(500), + "voucher_note" character varying(500), + "applicant" character varying(255), + "apply_date" character varying(255), + "approver" character varying(255), + "code" character varying(255), + "expected_return_date" character varying(255), + "org_unit" character varying(255), + "status" character varying(255), + "type" character varying(255), + "verify_date" character varying(255) +); + + +-- +-- Name: crm_petty_cash_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_petty_cash_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_petty_cash_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_petty_cash_id_seq" OWNED BY "public"."crm_petty_cash"."id"; + + +-- +-- Name: crm_satisfaction_survey; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_satisfaction_survey" ( + "issue_flag" boolean, + "quality_score" integer, + "schedule_score" integer, + "score" integer, + "service_score" integer, + "contract_id" bigint, + "customer_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "submitted_at" timestamp(6) with time zone, + "triggered_at" timestamp(6) with time zone, + "feedback" character varying(2000), + "customer_name" character varying(255), + "owner" character varying(255), + "respondent" character varying(255), + "status" character varying(255), + "trigger_source" character varying(255) +); + + +-- +-- Name: crm_satisfaction_survey_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_satisfaction_survey_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_satisfaction_survey_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_satisfaction_survey_id_seq" OWNED BY "public"."crm_satisfaction_survey"."id"; + + +-- +-- Name: crm_talk_script; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_talk_script" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "quote_draft" character varying(2000), + "content" character varying(4000), + "creator" character varying(255), + "grade_tag" character varying(255), + "industry_tag" character varying(255), + "script_scene" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: crm_talk_script_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_talk_script_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_talk_script_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_talk_script_id_seq" OWNED BY "public"."crm_talk_script"."id"; + + +-- +-- Name: crm_wbs_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."crm_wbs_task" ( + "milestone" boolean NOT NULL, + "progress" integer NOT NULL, + "seq" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "parent_id" bigint, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "assignee" character varying(255), + "deliverable" character varying(255), + "name" character varying(255), + "org_unit" character varying(255), + "plan_end" character varying(255), + "plan_start" character varying(255), + "priority" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "sync_status" character varying(255) +); + + +-- +-- Name: crm_wbs_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."crm_wbs_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: crm_wbs_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."crm_wbs_task_id_seq" OWNED BY "public"."crm_wbs_task"."id"; + + +-- +-- Name: csl_archive_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_archive_item" ( + "version" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "ref_id" bigint, + "archived_date" character varying(255), + "doc_type" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "scope" character varying(255), + "source" character varying(255), + "summary" character varying(255), + "tags" character varying(255), + "title" character varying(255), + "topic" character varying(255) +); + + +-- +-- Name: csl_archive_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_archive_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_archive_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_archive_item_id_seq" OWNED BY "public"."csl_archive_item"."id"; + + +-- +-- Name: csl_bid_link; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_bid_link" ( + "bid_id" bigint, + "created_at" timestamp(6) with time zone, + "csl_project_id_fk" bigint, + "id" bigint NOT NULL, + "opportunity_id_fk" bigint, + "remark" character varying(500), + "confirmed_by" character varying(255), + "link_type" character varying(255) +); + + +-- +-- Name: csl_bid_link_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_bid_link_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_bid_link_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_bid_link_id_seq" OWNED BY "public"."csl_bid_link"."id"; + + +-- +-- Name: csl_budget_line; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_budget_line" ( + "actual_amount" numeric(38,2), + "budget_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "parent_id" bigint, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "name" character varying(255), + "subject" character varying(255) +); + + +-- +-- Name: csl_budget_line_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_budget_line_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_budget_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_budget_line_id_seq" OWNED BY "public"."csl_budget_line"."id"; + + +-- +-- Name: csl_chapter_comment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_chapter_comment" ( + "chapter_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "parent_comment_id" bigint, + "report_id" bigint, + "updated_at" timestamp(6) with time zone, + "author" character varying(255), + "content" character varying(255), + "quoted_text" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: csl_chapter_comment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_chapter_comment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_chapter_comment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_chapter_comment_id_seq" OWNED BY "public"."csl_chapter_comment"."id"; + + +-- +-- Name: csl_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_contract" ( + "amount_excl_tax" numeric(38,2), + "change_count" integer, + "invoiced_amount" numeric(38,2), + "received_amount" numeric(38,2), + "tax_rate" numeric(38,2), + "total_amount" numeric(38,2) NOT NULL, + "created_at" timestamp(6) with time zone, + "csl_project_id" bigint, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "invoice_req" character varying(500), + "payment_plan_desc" character varying(500), + "legal_remark" character varying(1000), + "remark" character varying(1000), + "contract_code" character varying(255), + "contract_status" character varying(255), + "contract_type" character varying(255), + "due_date" character varying(255), + "legal_review" character varying(255), + "manager" character varying(255), + "name" character varying(255) NOT NULL, + "party_a" character varying(255), + "party_b" character varying(255), + "sign_date" character varying(255) +); + + +-- +-- Name: csl_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_contract_id_seq" OWNED BY "public"."csl_contract"."id"; + + +-- +-- Name: csl_customer; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_customer" ( + "complaint_count" integer, + "finished_project_count" integer, + "repurchase_flag" boolean, + "satisfaction_score10" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "latest_csl_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "tags" character varying(500), + "remark" character varying(1000), + "client_type" character varying(255), + "contact" character varying(255), + "field" character varying(255), + "grade" character varying(255), + "last_contact_date" character varying(255), + "name" character varying(255) NOT NULL, + "phone" character varying(255), + "region" character varying(255), + "source" character varying(255) +); + + +-- +-- Name: csl_customer_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_customer_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_customer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_customer_id_seq" OWNED BY "public"."csl_customer"."id"; + + +-- +-- Name: csl_entity_history; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_entity_history" ( + "created_at" timestamp(6) with time zone, + "entity_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "snapshot_after" character varying(4000), + "snapshot_before" character varying(4000), + "action" character varying(255), + "change_desc" character varying(255), + "entity_type" character varying(255), + "operator" character varying(255) +); + + +-- +-- Name: csl_entity_history_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_entity_history_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_entity_history_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_entity_history_id_seq" OWNED BY "public"."csl_entity_history"."id"; + + +-- +-- Name: csl_estimate_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_estimate_item" ( + "amount" numeric(38,2), + "qty" double precision, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "price_item_id" bigint, + "report_id" bigint, + "category" character varying(255), + "name" character varying(255), + "price_basis" character varying(255), + "spec" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: csl_estimate_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_estimate_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_estimate_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_estimate_item_id_seq" OWNED BY "public"."csl_estimate_item"."id"; + + +-- +-- Name: csl_expert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_expert" ( + "active_load" integer, + "avg_score" double precision, + "review_count" integer, + "years" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "expert_type" character varying(255), + "field" character varying(255), + "level" character varying(255), + "name" character varying(255), + "org" character varying(255), + "phone" character varying(255), + "region" character varying(255), + "review_history" character varying(255), + "source" character varying(255), + "specialty" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: csl_expert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_expert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_expert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_expert_id_seq" OWNED BY "public"."csl_expert"."id"; + + +-- +-- Name: csl_expert_score; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_expert_score" ( + "base_score" integer, + "late_deduction" integer, + "on_time" boolean, + "quality_bonus" integer, + "total_score" integer, + "created_at" timestamp(6) with time zone, + "expert_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "expert_name" character varying(255), + "quality_rating" character varying(255), + "rater" character varying(255), + "remark" character varying(255), + "review_task_code" character varying(255), + "review_task_desc" character varying(255), + "score_category" character varying(255) +); + + +-- +-- Name: csl_expert_score_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_expert_score_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_expert_score_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_expert_score_id_seq" OWNED BY "public"."csl_expert_score"."id"; + + +-- +-- Name: csl_integral_ledger; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_integral_ledger" ( + "delta" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "integral_type" character varying(255), + "operator" character varying(255), + "person" character varying(255), + "project_name" character varying(255), + "reason" character varying(255) +); + + +-- +-- Name: csl_integral_ledger_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_integral_ledger_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_integral_ledger_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_integral_ledger_id_seq" OWNED BY "public"."csl_integral_ledger"."id"; + + +-- +-- Name: csl_operation_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_operation_log" ( + "entity_id" bigint, + "id" bigint NOT NULL, + "occurred_at" timestamp(6) with time zone, + "action" character varying(255), + "after_summary" character varying(255), + "before_summary" character varying(255), + "entity_type" character varying(255), + "operator" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: csl_operation_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_operation_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_operation_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_operation_log_id_seq" OWNED BY "public"."csl_operation_log"."id"; + + +-- +-- Name: csl_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_project" ( + "budget_amount" numeric(38,2), + "contract_amount" numeric(38,2), + "priority_score" integer, + "progress" integer, + "urgency" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "accept_result" character varying(255), + "approval_flow" character varying(255), + "approval_status" character varying(255), + "client" character varying(255), + "code" character varying(255), + "created_date" character varying(255), + "field" character varying(255), + "manager" character varying(255), + "name" character varying(255), + "plan_end" character varying(255), + "plan_start" character varying(255), + "project_type" character varying(255), + "stage" character varying(255) +); + + +-- +-- Name: csl_project_cost; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_project_cost" ( + "amount" numeric(38,2), + "budget_line_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "cost_date" character varying(255), + "cost_type" character varying(255), + "status" character varying(255), + "subject" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: csl_project_cost_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_project_cost_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_project_cost_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_project_cost_id_seq" OWNED BY "public"."csl_project_cost"."id"; + + +-- +-- Name: csl_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_project_id_seq" OWNED BY "public"."csl_project"."id"; + + +-- +-- Name: csl_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_report" ( + "estimate_total" numeric(38,2), + "locked" boolean, + "version" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "approver" character varying(255), + "auditor" character varying(255), + "editor" character varying(255), + "esign" character varying(255), + "issued_date" character varying(255), + "report_type" character varying(255), + "review_stage" character varying(255), + "reviewer" character varying(255), + "summary" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: csl_report_chapter; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_report_chapter" ( + "chapter_index" integer, + "mandatory" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "report_id" bigint, + "updated_at" timestamp(6) with time zone, + "content" character varying(255), + "dimension" character varying(255), + "edited_by" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: csl_report_chapter_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_report_chapter_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_report_chapter_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_report_chapter_id_seq" OWNED BY "public"."csl_report_chapter"."id"; + + +-- +-- Name: csl_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_report_id_seq" OWNED BY "public"."csl_report"."id"; + + +-- +-- Name: csl_report_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_report_review" ( + "score" integer, + "version" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "report_id" bigint, + "action" character varying(255), + "actor" character varying(255), + "comment" character varying(255), + "stage" character varying(255) +); + + +-- +-- Name: csl_report_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_report_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_report_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_report_review_id_seq" OWNED BY "public"."csl_report_review"."id"; + + +-- +-- Name: csl_review_assignment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_review_assignment" ( + "score" integer, + "created_at" timestamp(6) with time zone, + "expert_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "report_id" bigint, + "batch_no" character varying(255), + "conclusion" character varying(255), + "draw_mode" character varying(255), + "expert_field" character varying(255), + "expert_name" character varying(255), + "expert_org" character varying(255), + "invited_date" character varying(255), + "opinion" character varying(255), + "scored_date" character varying(255), + "stage" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: csl_review_assignment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_review_assignment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_review_assignment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_review_assignment_id_seq" OWNED BY "public"."csl_review_assignment"."id"; + + +-- +-- Name: csl_risk_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_risk_log" ( + "impact" integer, + "probability" integer, + "risk_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "category" character varying(255), + "description" character varying(255), + "level" character varying(255), + "mitigation" character varying(255), + "owner" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: csl_risk_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_risk_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_risk_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_risk_log_id_seq" OWNED BY "public"."csl_risk_log"."id"; + + +-- +-- Name: csl_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_task" ( + "planned_hours" double precision, + "progress" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "deliverable" character varying(255), + "depends_on" character varying(255), + "due_date" character varying(255), + "owner" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "title" character varying(255), + "wbs_code" character varying(255) +); + + +-- +-- Name: csl_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_task_id_seq" OWNED BY "public"."csl_task"."id"; + + +-- +-- Name: csl_team_schedule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_team_schedule" ( + "planned_days" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "created_by" character varying(255), + "person" character varying(255), + "project_name" character varying(255), + "role" character varying(255), + "schedule_end" character varying(255), + "schedule_start" character varying(255), + "status" character varying(255), + "task_desc" character varying(255) +); + + +-- +-- Name: csl_team_schedule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_team_schedule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_team_schedule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_team_schedule_id_seq" OWNED BY "public"."csl_team_schedule"."id"; + + +-- +-- Name: csl_timesheet; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."csl_timesheet" ( + "hours" double precision, + "labor_cost" numeric(38,2), + "rate" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "task_id" bigint, + "person" character varying(255), + "role" character varying(255), + "status" character varying(255), + "work_content" character varying(255), + "work_date" character varying(255) +); + + +-- +-- Name: csl_timesheet_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."csl_timesheet_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: csl_timesheet_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."csl_timesheet_id_seq" OWNED BY "public"."csl_timesheet"."id"; + + +-- +-- Name: culture_archive; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_archive" ( + "award_count" integer, + "case_count" integer, + "event_count" integer, + "material_count" integer, + "story_count" integer, + "survey_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "archive_file_url" character varying(1000), + "remark" character varying(2000), + "archive_date" character varying(255), + "code" character varying(255), + "completion_date" character varying(255), + "operator" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: culture_archive_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_archive_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_archive_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_archive_id_seq" OWNED BY "public"."culture_archive"."id"; + + +-- +-- Name: culture_award; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_award" ( + "avg_score" double precision, + "bonus_amount" numeric(38,2), + "no_violation" boolean, + "review_count" integer, + "reward_issued" boolean, + "safety_passed" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "data_support" character varying(2000), + "proof_urls" character varying(2000), + "deeds" character varying(4000), + "applicant" character varying(255), + "approve_opinion" character varying(255), + "award_name" character varying(255), + "code" character varying(255), + "nominee" character varying(255), + "nominee_type" character varying(255), + "period" character varying(255), + "project_code" character varying(255), + "publicity_end" character varying(255), + "publicity_start" character varying(255), + "reward_date" character varying(255), + "reward_form" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: culture_award_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_award_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_award_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_award_id_seq" OWNED BY "public"."culture_award"."id"; + + +-- +-- Name: culture_award_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_award_review" ( + "score" double precision, + "award_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "award_code" character varying(255), + "opinion" character varying(255), + "review_date" character varying(255), + "review_stage" character varying(255), + "reviewer" character varying(255), + "vote" character varying(255) +); + + +-- +-- Name: culture_award_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_award_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_award_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_award_review_id_seq" OWNED BY "public"."culture_award_review"."id"; + + +-- +-- Name: culture_case; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_case" ( + "cite_count" integer, + "score" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cited_by" character varying(2000), + "good_practice" character varying(4000), + "lessons_learned" character varying(4000), + "case_type" character varying(255), + "category" character varying(255), + "code" character varying(255), + "discipline" character varying(255), + "keywords" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "review_opinion" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "submit_date" character varying(255), + "submitter" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: culture_case_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_case_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_case_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_case_id_seq" OWNED BY "public"."culture_case"."id"; + + +-- +-- Name: culture_goal; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_goal" ( + "budget_amount" numeric(38,2), + "spent_amount" numeric(38,2), + "target_article_count" integer, + "target_cohesion" double precision, + "target_satisfaction" double precision, + "target_story_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "scheme_id" bigint, + "cultural_officer" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "remark" character varying(255), + "scheme_code" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: culture_goal_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_goal_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_goal_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_goal_id_seq" OWNED BY "public"."culture_goal"."id"; + + +-- +-- Name: culture_improve; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_improve" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_survey_id" bigint, + "measure" character varying(2000), + "problem" character varying(2000), + "accept_result" character varying(255), + "code" character varying(255), + "done_date" character varying(255), + "due_date" character varying(255), + "owner" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: culture_improve_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_improve_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_improve_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_improve_id_seq" OWNED BY "public"."culture_improve"."id"; + + +-- +-- Name: culture_material; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_material" ( + "use_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "review_opinion" character varying(500), + "tags" character varying(500), + "description" character varying(2000), + "file_urls" character varying(2000), + "capture_date" character varying(255), + "code" character varying(255), + "material_type" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "project_phase" character varying(255), + "status" character varying(255), + "title" character varying(255), + "uploader" character varying(255) +); + + +-- +-- Name: culture_material_download; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_material_download" ( + "authorized_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "download_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "material_id" bigint, + "auth_comment" character varying(255), + "auth_status" character varying(255), + "authorized_by" character varying(255), + "downloader" character varying(255), + "downloader_dept" character varying(255), + "material_title" character varying(255), + "purpose" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: culture_material_download_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_material_download_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_material_download_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_material_download_id_seq" OWNED BY "public"."culture_material_download"."id"; + + +-- +-- Name: culture_material_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_material_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_material_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_material_id_seq" OWNED BY "public"."culture_material"."id"; + + +-- +-- Name: culture_monthly_briefing; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_monthly_briefing" ( + "new_material_count" integer, + "new_story_count" integer, + "project_count" integer, + "task_done" integer, + "task_overdue" integer, + "task_total" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "briefing_url" character varying(500), + "featured_projects" character varying(500), + "summary" character varying(4000), + "code" character varying(255), + "distribute_target" character varying(255), + "generated_by" character varying(255), + "issue_tag" character varying(255), + "publish_date" character varying(255), + "publish_month" character varying(255), + "published_by" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: culture_monthly_briefing_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_monthly_briefing_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_monthly_briefing_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_monthly_briefing_id_seq" OWNED BY "public"."culture_monthly_briefing"."id"; + + +-- +-- Name: culture_scheme; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_scheme" ( + "allocated_budget" numeric(38,2), + "quarter" integer, + "total_budget" numeric(38,2), + "year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approve_opinion" character varying(255), + "approver" character varying(255), + "code" character varying(255), + "end_date" character varying(255), + "expected_effect" character varying(255), + "key_activities" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "period_type" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "theme" character varying(255) +); + + +-- +-- Name: culture_scheme_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_scheme_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_scheme_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_scheme_id_seq" OWNED BY "public"."culture_scheme"."id"; + + +-- +-- Name: culture_story; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_story" ( + "need_legal" boolean, + "reward_amount" numeric(38,2), + "rewarded" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "media_urls" character varying(2000), + "review_trail" character varying(2000), + "body" character varying(4000), + "category" character varying(255), + "channel" character varying(255), + "code" character varying(255), + "contributor" character varying(255), + "current_handler" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "publish_date" character varying(255), + "publish_url" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: culture_story_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_story_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_story_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_story_id_seq" OWNED BY "public"."culture_story"."id"; + + +-- +-- Name: culture_survey; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_survey" ( + "overall_score" double precision, + "responded_count" integer, + "sample_count" integer, + "score_belonging" double precision, + "score_happiness" double precision, + "score_leadership" double precision, + "score_teamwork" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "close_date" character varying(255), + "code" character varying(255), + "open_date" character varying(255), + "period" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: culture_survey_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_survey_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_survey_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_survey_id_seq" OWNED BY "public"."culture_survey"."id"; + + +-- +-- Name: culture_survey_response; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."culture_survey_response" ( + "belonging" double precision, + "happiness" double precision, + "leadership" double precision, + "teamwork" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "survey_id" bigint, + "feedback" character varying(2000) +); + + +-- +-- Name: culture_survey_response_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."culture_survey_response_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: culture_survey_response_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."culture_survey_response_id_seq" OWNED BY "public"."culture_survey_response"."id"; + + +-- +-- Name: customer; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."customer" ( + "id" bigint NOT NULL, + "address" character varying(255), + "contact" character varying(255), + "grade" character varying(255), + "name" character varying(255), + "phone" character varying(255), + "status" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: customer_complaint; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."customer_complaint" ( + "satisfaction" integer, + "created_at" timestamp(6) with time zone, + "customer_id" bigint, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "complaint_date" character varying(255), + "content" character varying(255), + "customer_name" character varying(255), + "handler" character varying(255), + "org_unit" character varying(255), + "resolution" character varying(255), + "resolve_date" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: customer_complaint_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."customer_complaint_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: customer_complaint_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."customer_complaint_id_seq" OWNED BY "public"."customer_complaint"."id"; + + +-- +-- Name: customer_credit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."customer_credit" ( + "credit_limit" numeric(38,2), + "payment_term_days" integer, + "created_at" timestamp(6) with time zone, + "customer_id" bigint, + "id" bigint NOT NULL, + "customer_name" character varying(255), + "effective_date" character varying(255), + "expire_date" character varying(255), + "grade" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: customer_credit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."customer_credit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: customer_credit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."customer_credit_id_seq" OWNED BY "public"."customer_credit"."id"; + + +-- +-- Name: customer_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."customer_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: customer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."customer_id_seq" OWNED BY "public"."customer"."id"; + + +-- +-- Name: customer_visit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."customer_visit" ( + "followed" boolean, + "created_at" timestamp(6) with time zone, + "customer_id" bigint, + "id" bigint NOT NULL, + "contact_person" character varying(255), + "customer_name" character varying(255), + "location" character varying(255), + "next_follow_date" character varying(255), + "next_plan" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "summary" character varying(255), + "visit_date" character varying(255), + "visit_type" character varying(255) +); + + +-- +-- Name: customer_visit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."customer_visit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: customer_visit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."customer_visit_id_seq" OWNED BY "public"."customer_visit"."id"; + + +-- +-- Name: data_sync_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."data_sync_log" ( + "record_count" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "synced_at" timestamp(6) with time zone, + "direction" character varying(255), + "entity" character varying(255), + "message" character varying(255), + "operator" character varying(255), + "source" character varying(255), + "status" character varying(255), + "target" character varying(255) +); + + +-- +-- Name: data_sync_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."data_sync_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: data_sync_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."data_sync_log_id_seq" OWNED BY "public"."data_sync_log"."id"; + + +-- +-- Name: decl_acceptance; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_acceptance" ( + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "remark" character varying(1000), + "review_note" character varying(1000), + "materials_json" character varying(3000), + "accept_type" character varying(255), + "accepted_date" character varying(255), + "authority" character varying(255), + "code" character varying(255), + "owner" character varying(255), + "plan_date" character varying(255), + "project_name" character varying(255), + "reviewer" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: decl_acceptance_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_acceptance_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_acceptance_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_acceptance_id_seq" OWNED BY "public"."decl_acceptance"."id"; + + +-- +-- Name: decl_achievement; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_achievement" ( + "archived" boolean, + "granted_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "policy_application_id" bigint, + "reused_from_id" bigint, + "remark" character varying(1000), + "achieve_type" character varying(255), + "archive_no" character varying(255), + "attachment_name" character varying(255), + "authority" character varying(255), + "cert_no" character varying(255), + "code" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "valid_from" character varying(255), + "valid_to" character varying(255) +); + + +-- +-- Name: decl_achievement_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_achievement_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_achievement_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_achievement_id_seq" OWNED BY "public"."decl_achievement"."id"; + + +-- +-- Name: decl_audit_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_audit_report" ( + "audit_year" integer, + "hi_tech_revenue" numeric(38,2), + "rd_expense" numeric(38,2), + "rd_ratio" numeric(38,2), + "revenue" numeric(38,2), + "tax_benefit" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "policy_application_id" bigint, + "remark" character varying(1000), + "attachment_name" character varying(255), + "audit_firm" character varying(255), + "report_date" character varying(255), + "reviewer" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: decl_audit_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_audit_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_audit_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_audit_report_id_seq" OWNED BY "public"."decl_audit_report"."id"; + + +-- +-- Name: decl_evidence_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_evidence_item" ( + "archived" boolean, + "collected_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "source_ref_id" bigint, + "summary" character varying(1000), + "attachment_name" character varying(255), + "category" character varying(255), + "source_dept" character varying(255), + "source_module" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: decl_evidence_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_evidence_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_evidence_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_evidence_item_id_seq" OWNED BY "public"."decl_evidence_item"."id"; + + +-- +-- Name: decl_failure_case; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_failure_case" ( + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "improvement" character varying(2000), + "root_cause" character varying(2000), + "authority" character varying(255), + "decl_program" character varying(255), + "fail_stage" character varying(255), + "fail_year" character varying(255), + "project_name" character varying(255), + "recorder" character varying(255), + "tags" character varying(255) +); + + +-- +-- Name: decl_failure_case_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_failure_case_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_failure_case_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_failure_case_id_seq" OWNED BY "public"."decl_failure_case"."id"; + + +-- +-- Name: decl_material_link; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_material_link" ( + "collab_doc_id" bigint NOT NULL, + "created_at" timestamp(6) with time zone, + "declaration_id" bigint NOT NULL, + "id" bigint NOT NULL, + "remark" character varying(1000), + "created_by" character varying(255), + "doc_title" character varying(255), + "material_type" character varying(255) +); + + +-- +-- Name: decl_material_link_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_material_link_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_material_link_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_material_link_id_seq" OWNED BY "public"."decl_material_link"."id"; + + +-- +-- Name: decl_policy_subscription; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_policy_subscription" ( + "active" boolean, + "pushed_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_pushed_at" timestamp(6) with time zone, + "remark" character varying(500), + "category" character varying(255), + "subscriber" character varying(255), + "tags" character varying(255) +); + + +-- +-- Name: decl_policy_subscription_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_policy_subscription_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_policy_subscription_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_policy_subscription_id_seq" OWNED BY "public"."decl_policy_subscription"."id"; + + +-- +-- Name: decl_project_assignment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_project_assignment" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "participant_id" bigint, + "policy_application_id" bigint, + "remark" character varying(1000), + "end_date" character varying(255), + "participant_name" character varying(255), + "participant_type" character varying(255), + "project_name" character varying(255), + "role_desc" character varying(255), + "start_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: decl_project_assignment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_project_assignment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_project_assignment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_project_assignment_id_seq" OWNED BY "public"."decl_project_assignment"."id"; + + +-- +-- Name: decl_push_device; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_push_device" ( + "active" boolean, + "delivered_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_push_at" timestamp(6) with time zone, + "device_token" character varying(500), + "channel" character varying(255), + "last_push_title" character varying(255), + "owner" character varying(255), + "platform" character varying(255) +); + + +-- +-- Name: decl_push_device_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_push_device_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_push_device_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_push_device_id_seq" OWNED BY "public"."decl_push_device"."id"; + + +-- +-- Name: decl_submission; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."decl_submission" ( + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "portal_password_enc" character varying(1000), + "remark" character varying(1000), + "review_trail_json" character varying(4000), + "code" character varying(255), + "decl_type" character varying(255), + "esign_status" character varying(255), + "gov_platform" character varying(255), + "owner" character varying(255), + "portal_account" character varying(255), + "project_name" character varying(255), + "receipt_no" character varying(255), + "review_stage" character varying(255), + "submitted_date" character varying(255) +); + + +-- +-- Name: decl_submission_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."decl_submission_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: decl_submission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."decl_submission_id_seq" OWNED BY "public"."decl_submission"."id"; + + +-- +-- Name: declaration; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."declaration" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "rd_project_id" bigint, + "authority" character varying(255), + "deadline" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "program" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: declaration_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."declaration_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: declaration_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."declaration_id_seq" OWNED BY "public"."declaration"."id"; + + +-- +-- Name: declaration_step; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."declaration_step" ( + "step_order" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "declaration_name" character varying(255), + "due_date" character varying(255), + "owner" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "step_name" character varying(255) +); + + +-- +-- Name: declaration_step_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."declaration_step_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: declaration_step_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."declaration_step_id_seq" OWNED BY "public"."declaration_step"."id"; + + +-- +-- Name: declaration_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."declaration_template" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "authority" character varying(255), + "auto_check_rules" character varying(255), + "name" character varying(255), + "program" character varying(255), + "required_materials" character varying(255), + "status" character varying(255), + "updated_by" character varying(255), + "version" character varying(255), + "body_template" "text" +); + + +-- +-- Name: declaration_template_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."declaration_template_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: declaration_template_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."declaration_template_id_seq" OWNED BY "public"."declaration_template"."id"; + + +-- +-- Name: delegation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."delegation" ( + "active" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "end_date" character varying(255), + "from_user" character varying(255) NOT NULL, + "note" character varying(255), + "start_date" character varying(255), + "to_user" character varying(255) NOT NULL +); + + +-- +-- Name: delegation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."delegation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: delegation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."delegation_id_seq" OWNED BY "public"."delegation"."id"; + + +-- +-- Name: design_annotation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_annotation" ( + "created_at" timestamp(6) with time zone, + "drawing_id" bigint, + "id" bigint NOT NULL, + "author" character varying(255), + "content" character varying(255), + "drawing_no" character varying(255), + "location_ref" character varying(255), + "reply" character varying(255), + "severity" character varying(255), + "stage" character varying(255), + "status" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: design_annotation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_annotation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_annotation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_annotation_id_seq" OWNED BY "public"."design_annotation"."id"; + + +-- +-- Name: design_audit_trail; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_audit_trail" ( + "id" bigint NOT NULL, + "occurred_at" timestamp(6) with time zone, + "target_id" bigint, + "action" character varying(255), + "client_ip" character varying(255), + "digital_sign" character varying(255), + "note" character varying(255), + "operator" character varying(255), + "target_name" character varying(255), + "target_no" character varying(255), + "target_type" character varying(255), + "trust_timestamp" character varying(255) +); + + +-- +-- Name: design_audit_trail_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_audit_trail_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_audit_trail_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_audit_trail_id_seq" OWNED BY "public"."design_audit_trail"."id"; + + +-- +-- Name: design_change; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_change" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "change_type" character varying(255), + "doc_name" character varying(255), + "impact" character varying(255), + "project_name" character varying(255), + "reason" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: design_change_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_change_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_change_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_change_id_seq" OWNED BY "public"."design_change"."id"; + + +-- +-- Name: design_change_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_change_order" ( + "cost_impact" numeric(38,2), + "schedule_impact_days" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "affected_disciplines" character varying(255), + "applicant" character varying(255), + "approval_chain" character varying(255), + "code" character varying(255), + "decision_note" character varying(255), + "doc_name" character varying(255), + "from_version" character varying(255), + "impact_scope" character varying(255), + "implemented_date" character varying(255), + "level" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "reason" character varying(255), + "source" character varying(255), + "status" character varying(255), + "title" character varying(255), + "to_version" character varying(255) +); + + +-- +-- Name: design_change_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_change_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_change_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_change_order_id_seq" OWNED BY "public"."design_change_order"."id"; + + +-- +-- Name: design_clash; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_clash" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "assigned_discipline" character varying(255), + "assignee" character varying(255), + "clash_type" character varying(255), + "code" character varying(255), + "description" character varying(255), + "detected_date" character varying(255), + "disciplinea" character varying(255), + "disciplineb" character varying(255), + "meeting_note" character varying(255), + "model_area" character varying(255), + "project_name" character varying(255), + "resolution" character varying(255), + "resolved_date" character varying(255), + "severity" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: design_clash_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_clash_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_clash_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_clash_id_seq" OWNED BY "public"."design_clash"."id"; + + +-- +-- Name: design_distribution; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_distribution" ( + "created_at" timestamp(6) with time zone, + "drawing_id" bigint, + "id" bigint NOT NULL, + "drawing_no" character varying(255), + "issued_date" character varying(255), + "issuer_seal" character varying(255), + "qr_token" character varying(255), + "received_date" character varying(255), + "receiver" character varying(255), + "receiver_org" character varying(255), + "receiver_sign" character varying(255), + "receiver_type" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: design_distribution_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_distribution_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_distribution_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_distribution_id_seq" OWNED BY "public"."design_distribution"."id"; + + +-- +-- Name: design_doc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_doc" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "designer" character varying(255), + "doc_type" character varying(255), + "issue_date" character varying(255), + "name" character varying(255), + "project_name" character varying(255), + "review_status" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: design_doc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_doc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_doc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_doc_id_seq" OWNED BY "public"."design_doc"."id"; + + +-- +-- Name: design_drawing; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_drawing" ( + "locked" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "approver" character varying(255), + "checker" character varying(255), + "current_version" character varying(255), + "designer" character varying(255), + "discipline" character varying(255), + "drawing_no" character varying(255), + "file_format" character varying(255), + "lifecycle_status" character varying(255), + "name" character varying(255), + "phase" character varying(255), + "project_name" character varying(255), + "published_date" character varying(255), + "qr_token" character varying(255), + "reviewer" character varying(255) +); + + +-- +-- Name: design_drawing_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_drawing_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_drawing_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_drawing_id_seq" OWNED BY "public"."design_drawing"."id"; + + +-- +-- Name: design_drawing_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_drawing_version" ( + "current" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "drawing_id" bigint, + "id" bigint NOT NULL, + "approved_date" character varying(255), + "approver" character varying(255), + "change_note" character varying(255), + "checked_date" character varying(255), + "checker" character varying(255), + "designer" character varying(255), + "drawing_no" character varying(255), + "published_date" character varying(255), + "reviewed_date" character varying(255), + "reviewer" character varying(255), + "superseded_by_version" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: design_drawing_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_drawing_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_drawing_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_drawing_version_id_seq" OWNED BY "public"."design_drawing_version"."id"; + + +-- +-- Name: design_external_access; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_external_access" ( + "accessed_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "portal_id" bigint, + "project_id" bigint, + "access_remark" character varying(1000), + "access_token" character varying(255), + "action_type" character varying(255), + "client_ip" character varying(255), + "file_name" character varying(255), + "file_version" character varying(255), + "operator" character varying(255), + "org_name" character varying(255), + "project_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: design_external_access_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_external_access_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_external_access_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_external_access_id_seq" OWNED BY "public"."design_external_access"."id"; + + +-- +-- Name: design_external_portal; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_external_portal" ( + "quality_score" integer, + "score_completeness" integer, + "score_compliance" integer, + "score_tech_level" integer, + "score_timeliness" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "portal_remark" character varying(1000), + "eval_comment" character varying(2000), + "task_desc" character varying(4000), + "contact_email" character varying(255), + "contact_person" character varying(255), + "discipline" character varying(255), + "eval_date" character varying(255), + "evaluator" character varying(255), + "ip_whitelist" character varying(255), + "issued_by" character varying(255), + "org_name" character varying(255), + "outcome_files" character varying(255), + "portal_deadline" character varying(255), + "portal_start" character varying(255), + "portal_status" character varying(255), + "portal_token" character varying(255), + "project_name" character varying(255), + "quality_grade" character varying(255), + "security_level" character varying(255), + "submitted_date" character varying(255), + "task_title" character varying(255) +); + + +-- +-- Name: design_external_portal_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_external_portal_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_external_portal_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_external_portal_id_seq" OWNED BY "public"."design_external_portal"."id"; + + +-- +-- Name: design_handoff; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_handoff" ( + "notified" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "code" character varying(255), + "feedback_date" character varying(255), + "feedback_note" character varying(255), + "feedback_ref" character varying(255), + "notify_channel" character varying(255), + "payload" character varying(255), + "project_name" character varying(255), + "received_date" character varying(255), + "receiver" character varying(255), + "source_ref" character varying(255), + "source_type" character varying(255), + "status" character varying(255), + "target_dept" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: design_handoff_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_handoff_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_handoff_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_handoff_id_seq" OWNED BY "public"."design_handoff"."id"; + + +-- +-- Name: design_interface; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_interface" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "confirmed_date" character varying(255), + "data_item" character varying(255), + "data_version" character varying(255), + "due_date" character varying(255), + "from_discipline" character varying(255), + "project_code" character varying(255), + "receiver" character varying(255), + "remark" character varying(255), + "sender" character varying(255), + "status" character varying(255), + "submitted_date" character varying(255), + "to_discipline" character varying(255) +); + + +-- +-- Name: design_interface_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_interface_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_interface_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_interface_id_seq" OWNED BY "public"."design_interface"."id"; + + +-- +-- Name: design_knowledge; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_knowledge" ( + "ref_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "author" character varying(255), + "building_type" character varying(255), + "code" character varying(255), + "content" character varying(255), + "discipline" character varying(255), + "effective_date" character varying(255), + "file_ref" character varying(255), + "keywords" character varying(255), + "kind" character varying(255), + "push_rule" character varying(255), + "scale" character varying(255), + "status" character varying(255), + "style" character varying(255), + "summary" character varying(255), + "template_params" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: design_knowledge_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_knowledge_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_knowledge_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_knowledge_id_seq" OWNED BY "public"."design_knowledge"."id"; + + +-- +-- Name: design_metric; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_metric" ( + "actual_value" double precision, + "limit_value" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "direction" character varying(255), + "metric_name" character varying(255), + "project_name" character varying(255), + "remark" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: design_metric_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_metric_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_metric_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_metric_id_seq" OWNED BY "public"."design_metric"."id"; + + +-- +-- Name: design_output_share; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_output_share" ( + "amount" numeric(38,2), + "contract_amount" numeric(38,2), + "discipline_ratio" double precision, + "phase_ratio" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "designer" character varying(255), + "discipline" character varying(255), + "phase" character varying(255), + "project_name" character varying(255) +); + + +-- +-- Name: design_output_share_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_output_share_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_output_share_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_output_share_id_seq" OWNED BY "public"."design_output_share"."id"; + + +-- +-- Name: design_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_project" ( + "actual_cost" numeric(38,2), + "budget" numeric(38,2), + "steel_actual" double precision, + "steel_limit" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "chief_designer" character varying(255), + "code" character varying(255), + "consult_ref" character varying(255), + "contract_code" character varying(255), + "due_date" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "scope" character varying(255), + "source" character varying(255), + "stage" character varying(255), + "start_date" character varying(255) +); + + +-- +-- Name: design_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_project_id_seq" OWNED BY "public"."design_project"."id"; + + +-- +-- Name: design_reservation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_reservation" ( + "planned_hours" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "designer_name" character varying(255), + "discipline" character varying(255), + "project_name" character varying(255), + "remark" character varying(255), + "rsv_end" character varying(255), + "rsv_start" character varying(255), + "status" character varying(255), + "task_name" character varying(255) +); + + +-- +-- Name: design_reservation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_reservation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_reservation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_reservation_id_seq" OWNED BY "public"."design_reservation"."id"; + + +-- +-- Name: design_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."design_task" ( + "actual_hours" double precision, + "planned_hours" double precision, + "progress" integer, + "rate" numeric(38,2), + "created_at" timestamp(6) with time zone, + "depends_on_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "assignee" character varying(255), + "discipline" character varying(255), + "name" character varying(255), + "planned_end" character varying(255), + "planned_start" character varying(255), + "project_code" character varying(255), + "role" character varying(255), + "status" character varying(255), + "wbs" character varying(255) +); + + +-- +-- Name: design_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."design_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: design_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."design_task_id_seq" OWNED BY "public"."design_task"."id"; + + +-- +-- Name: designer_capability; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."designer_capability" ( + "active_tasks" integer, + "available" boolean NOT NULL, + "change_rate" double precision, + "drawing_speed" double precision, + "first_pass_rate" double precision, + "on_time_rate" double precision, + "project_count" integer, + "satisfaction" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "discipline" character varying(255), + "good_at" character varying(255), + "name" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: designer_capability_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."designer_capability_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: designer_capability_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."designer_capability_id_seq" OWNED BY "public"."designer_capability"."id"; + + +-- +-- Name: discussion; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."discussion" ( + "reply_count" integer NOT NULL, + "author_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "author" character varying(255), + "category" character varying(255), + "title" character varying(255), + "content" "text", + "replies_json" "text" +); + + +-- +-- Name: discussion_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."discussion_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: discussion_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."discussion_id_seq" OWNED BY "public"."discussion"."id"; + + +-- +-- Name: dish_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."dish_review" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "menu_id" bigint, + "comment" character varying(255), + "dish" character varying(255), + "reviewer" character varying(255), + "sentiment" character varying(255) +); + + +-- +-- Name: dish_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."dish_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: dish_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."dish_review_id_seq" OWNED BY "public"."dish_review"."id"; + + +-- +-- Name: doc_file; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."doc_file" ( + "version" integer, + "folder_id" bigint, + "id" bigint NOT NULL, + "size" bigint, + "stored_file_id" bigint, + "updated_at" timestamp(6) with time zone, + "ext" character varying(255), + "name" character varying(255) NOT NULL, + "status" character varying(255), + "uploader" character varying(255) +); + + +-- +-- Name: doc_file_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."doc_file_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: doc_file_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."doc_file_id_seq" OWNED BY "public"."doc_file"."id"; + + +-- +-- Name: doc_folder; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."doc_folder" ( + "id" bigint NOT NULL, + "parent_id" bigint, + "name" character varying(255) NOT NULL +); + + +-- +-- Name: doc_folder_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."doc_folder_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: doc_folder_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."doc_folder_id_seq" OWNED BY "public"."doc_folder"."id"; + + +-- +-- Name: ehs_audit_prep_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_audit_prep_task" ( + "audit_plan_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assignee" character varying(255), + "description" character varying(255), + "done_date" character varying(255), + "due_date" character varying(255), + "priority" character varying(255), + "remark" character varying(255), + "task_status" character varying(255), + "task_title" character varying(255) +); + + +-- +-- Name: ehs_audit_prep_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_audit_prep_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_audit_prep_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_audit_prep_task_id_seq" OWNED BY "public"."ehs_audit_prep_task"."id"; + + +-- +-- Name: ehs_capa; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_capa" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_id" bigint, + "code" character varying(255), + "dept" character varying(255), + "done_date" character varying(255), + "due_date" character varying(255), + "effectiveness" character varying(255), + "measure_plan" character varying(255), + "measure_type" character varying(255), + "owner" character varying(255), + "problem" character varying(255), + "problem_type" character varying(255), + "root_cause" character varying(255), + "source_type" character varying(255), + "status" character varying(255), + "title" character varying(255), + "verifier" character varying(255), + "verify_note" character varying(255) +); + + +-- +-- Name: ehs_capa_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_capa_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_capa_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_capa_id_seq" OWNED BY "public"."ehs_capa"."id"; + + +-- +-- Name: ehs_check_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_check_plan" ( + "generated_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "check_items" character varying(255), + "check_type" character varying(255), + "code" character varying(255), + "end_date" character varying(255), + "frequency" character varying(255), + "last_generated_date" character varying(255), + "plan_name" character varying(255), + "plan_status" character varying(255), + "remark" character varying(255), + "responsible" character varying(255), + "scope" character varying(255), + "start_date" character varying(255) +); + + +-- +-- Name: ehs_check_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_check_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_check_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_check_plan_id_seq" OWNED BY "public"."ehs_check_plan"."id"; + + +-- +-- Name: ehs_contractor_edu; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_contractor_edu" ( + "pass_score" integer, + "score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "visitor_id" bigint, + "access_card_no" character varying(255), + "block_reason" character varying(255), + "code" character varying(255), + "company" character varying(255), + "edu_content" character varying(255), + "edu_date" character varying(255), + "edu_status" character varying(255), + "id_card" character varying(255), + "person_name" character varying(255), + "person_type" character varying(255), + "phone" character varying(255), + "remark" character varying(255), + "trainer" character varying(255), + "valid_until" character varying(255) +); + + +-- +-- Name: ehs_contractor_edu_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_contractor_edu_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_contractor_edu_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_contractor_edu_id_seq" OWNED BY "public"."ehs_contractor_edu"."id"; + + +-- +-- Name: ehs_env_tax_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_env_tax_record" ( + "emission_qty" numeric(38,2), + "equivalent_factor" numeric(38,2), + "equivalent_qty" numeric(38,2), + "paid_amount" numeric(38,2), + "tax_amount" numeric(38,2), + "tax_rate" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "cost_desc" character varying(255), + "emission_point" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "permit_no" character varying(255), + "pollutant_name" character varying(255), + "record_status" character varying(255), + "remark" character varying(255), + "tax_type" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: ehs_env_tax_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_env_tax_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_env_tax_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_env_tax_record_id_seq" OWNED BY "public"."ehs_env_tax_record"."id"; + + +-- +-- Name: ehs_hazard; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_hazard" ( + "consequence" integer, + "likelihood" integer, + "risk_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "category" character varying(255), + "check_date" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "description" character varying(255), + "due_date" character varying(255), + "inspector" character varying(255), + "location" character varying(255), + "rectified_date" character varying(255), + "rectify_measure" character varying(255), + "responsible" character varying(255), + "risk_level" character varying(255), + "status" character varying(255), + "type" character varying(255), + "verified_date" character varying(255), + "verifier" character varying(255), + "verify_note" character varying(255) +); + + +-- +-- Name: ehs_hazard_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_hazard_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_hazard_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_hazard_id_seq" OWNED BY "public"."ehs_hazard"."id"; + + +-- +-- Name: ehs_incident; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_incident" ( + "capa_generated" boolean, + "deaths" integer, + "direct_loss" numeric(38,2), + "injuries" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "cause" character varying(255), + "code" character varying(255), + "corrective_action" character varying(255), + "description" character varying(255), + "grade" character varying(255), + "incident_type" character varying(255), + "investigators" character varying(255), + "location" character varying(255), + "occur_date" character varying(255), + "report_deadline" character varying(255), + "reporter" character varying(255), + "responsible" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: ehs_incident_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_incident_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_incident_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_incident_id_seq" OWNED BY "public"."ehs_incident"."id"; + + +-- +-- Name: ehs_objective; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_objective" ( + "actual_value" double precision, + "attain_rate" double precision, + "target_value" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "data_source" character varying(255), + "dept" character varying(255), + "dimension" character varying(255), + "direction" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: ehs_objective_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_objective_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_objective_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_objective_id_seq" OWNED BY "public"."ehs_objective"."id"; + + +-- +-- Name: ehs_special_equip; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_special_equip" ( + "inspect_cycle_years" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "emergency_plan_no" character varying(255), + "equip_category" character varying(255), + "equip_code" character varying(255), + "equip_dept_owner" character varying(255), + "equip_name" character varying(255), + "inspect_authority" character varying(255), + "inspect_conclusion" character varying(255), + "install_notice_no" character varying(255), + "last_inspect_date" character varying(255), + "location" character varying(255), + "manufacture_cert_no" character varying(255), + "manufacture_date" character varying(255), + "next_inspect_due" character varying(255), + "put_use_date" character varying(255), + "rated_param" character varying(255), + "register_cert_no" character varying(255), + "remark" character varying(255), + "safety_attachment_next_check" character varying(255), + "safety_attachment_note" character varying(255), + "safety_owner" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "use_dept" character varying(255) +); + + +-- +-- Name: ehs_special_equip_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_special_equip_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_special_equip_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_special_equip_id_seq" OWNED BY "public"."ehs_special_equip"."id"; + + +-- +-- Name: ehs_supply; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_supply" ( + "current_stock" double precision, + "quantity" double precision, + "safety_stock" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "check_result" character varying(255), + "code" character varying(255), + "expiry_date" character varying(255), + "location" character varying(255), + "next_check_date" character varying(255), + "op_date" character varying(255), + "op_type" character varying(255), + "operator" character varying(255), + "rectify_note" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "supply_name" character varying(255), + "supply_status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: ehs_supply_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_supply_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_supply_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_supply_id_seq" OWNED BY "public"."ehs_supply"."id"; + + +-- +-- Name: ehs_work_permit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ehs_work_permit" ( + "gas_tested" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "applicant" character varying(255), + "approve_note" character varying(255), + "approver" character varying(255), + "close_note" character varying(255), + "code" character varying(255), + "gas_result" character varying(255), + "guardian" character varying(255), + "location" character varying(255), + "permit_type" character varying(255), + "risk_level" character varying(255), + "safety_measure" character varying(255), + "status" character varying(255), + "valid_from" character varying(255), + "valid_to" character varying(255), + "work_content" character varying(255), + "work_team" character varying(255) +); + + +-- +-- Name: ehs_work_permit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ehs_work_permit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ehs_work_permit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ehs_work_permit_id_seq" OWNED BY "public"."ehs_work_permit"."id"; + + +-- +-- Name: emg_drill; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."emg_drill" ( + "participants" integer, + "score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "dept" character varying(255), + "drill_date" character varying(255), + "drill_type" character varying(255), + "evaluation" character varying(255), + "plan_date" character varying(255), + "plan_name" character varying(255), + "plan_type" character varying(255), + "problems" character varying(255), + "process" character varying(255), + "scenario" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: emg_drill_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."emg_drill_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: emg_drill_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."emg_drill_id_seq" OWNED BY "public"."emg_drill"."id"; + + +-- +-- Name: emp_share_material; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."emp_share_material" ( + "use_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "tags" character varying(500), + "thumbnail_url" character varying(500), + "description" character varying(2000), + "file_url" character varying(2000), + "audience" character varying(255), + "code" character varying(255), + "effect_date" character varying(255), + "expire_dt" character varying(255), + "material_type" character varying(255), + "status" character varying(255), + "title" character varying(255), + "uploader" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: emp_share_material_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."emp_share_material_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: emp_share_material_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."emp_share_material_id_seq" OWNED BY "public"."emp_share_material"."id"; + + +-- +-- Name: env_compli_obligation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."env_compli_obligation" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "compli_status" character varying(255), + "doc_number" character varying(255), + "effective_date" character varying(255), + "env_category" character varying(255), + "eval_date" character varying(255), + "evaluator" character varying(255), + "gap_description" character varying(255), + "gap_level" character varying(255), + "issuer" character varying(255), + "rectify_due_date" character varying(255), + "rectify_plan" character varying(255), + "regulation_name" character varying(255), + "remark" character varying(255), + "requirement_summary" character varying(255), + "responsible" character varying(255), + "update_date" character varying(255) +); + + +-- +-- Name: env_compli_obligation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."env_compli_obligation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: env_compli_obligation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."env_compli_obligation_id_seq" OWNED BY "public"."env_compli_obligation"."id"; + + +-- +-- Name: env_discharge_permit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."env_discharge_permit" ( + "limit_value" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "env_type" character varying(255), + "issuer" character varying(255), + "monitor_require" character varying(255), + "outlet" character varying(255), + "permit_no" character varying(255), + "pollutant" character varying(255), + "status" character varying(255), + "unit" character varying(255), + "valid_from" character varying(255), + "valid_to" character varying(255) +); + + +-- +-- Name: env_discharge_permit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."env_discharge_permit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: env_discharge_permit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."env_discharge_permit_id_seq" OWNED BY "public"."env_discharge_permit"."id"; + + +-- +-- Name: env_monitor_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."env_monitor_record" ( + "excess_ratio" double precision, + "limit_value" double precision, + "measured_value" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "permit_id" bigint, + "measure_type" character varying(255), + "monitor" character varying(255), + "monitor_date" character varying(255), + "note" character varying(255), + "status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: env_monitor_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."env_monitor_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: env_monitor_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."env_monitor_record_id_seq" OWNED BY "public"."env_monitor_record"."id"; + + +-- +-- Name: env_risk_source; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."env_risk_source" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "accident_scenario" character varying(255), + "capacity" character varying(255), + "code" character varying(255), + "control_measures" character varying(255), + "emergency_plan" character varying(255), + "hazardous_material" character varying(255), + "last_check_date" character varying(255), + "location" character varying(255), + "next_check_date" character varying(255), + "remark" character varying(255), + "responsible" character varying(255), + "risk_level" character varying(255), + "source_name" character varying(255), + "source_status" character varying(255), + "source_type" character varying(255) +); + + +-- +-- Name: env_risk_source_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."env_risk_source_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: env_risk_source_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."env_risk_source_id_seq" OWNED BY "public"."env_risk_source"."id"; + + +-- +-- Name: env_waste_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."env_waste_record" ( + "measured_value" double precision, + "quantity" double precision, + "standard_limit" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "direction" character varying(255), + "emission_point" character varying(255), + "exceed_note" character varying(255), + "plant" character varying(255), + "pollutant_name" character varying(255), + "record_date" character varying(255), + "recorder" character varying(255), + "remark" character varying(255), + "transfer_manifest_no" character varying(255), + "unit" character varying(255), + "waste_status" character varying(255), + "waste_subtype" character varying(255), + "waste_type" character varying(255) +); + + +-- +-- Name: env_waste_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."env_waste_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: env_waste_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."env_waste_record_id_seq" OWNED BY "public"."env_waste_record"."id"; + + +-- +-- Name: event_checkin; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."event_checkin" ( + "checkin_at" timestamp(6) with time zone, + "event_id" bigint, + "id" bigint NOT NULL, + "attendee_code" character varying(255), + "attendee_name" character varying(255), + "checkin_method" character varying(255), + "department" character varying(255), + "event_code" character varying(255), + "event_name" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: event_checkin_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."event_checkin_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: event_checkin_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."event_checkin_id_seq" OWNED BY "public"."event_checkin"."id"; + + +-- +-- Name: event_guest; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."event_guest" ( + "created_at" timestamp(6) with time zone, + "event_id" bigint, + "id" bigint NOT NULL, + "checkin_time" character varying(255), + "confirmed_date" character varying(255), + "email" character varying(255), + "event_name" character varying(255), + "guest_name" character varying(255), + "guest_type" character varying(255), + "invite_status" character varying(255), + "invited_date" character varying(255), + "organization" character varying(255), + "phone" character varying(255), + "remark" character varying(255), + "special_requirements" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: event_guest_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."event_guest_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: event_guest_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."event_guest_id_seq" OWNED BY "public"."event_guest"."id"; + + +-- +-- Name: event_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."event_task" ( + "created_at" timestamp(6) with time zone, + "event_id" bigint, + "id" bigint NOT NULL, + "assignee" character varying(255), + "category" character varying(255), + "due_date" character varying(255), + "event_code" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: event_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."event_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: event_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."event_task_id_seq" OWNED BY "public"."event_task"."id"; + + +-- +-- Name: expense_claim; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."expense_claim" ( + "amount" numeric(38,2), + "budget_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "invoice_file_id" bigint, + "project_id" bigint, + "applicant" character varying(255), + "category" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "dept" character varying(255), + "expense_date" character varying(255), + "reject_reason" character varying(255), + "status" character varying(255), + "submit_date" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: expense_claim_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."expense_claim_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: expense_claim_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."expense_claim_id_seq" OWNED BY "public"."expense_claim"."id"; + + +-- +-- Name: expert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."expert" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "expert_type" character varying(255), + "field" character varying(255), + "name" character varying(255), + "org" character varying(255), + "phone" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: expert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."expert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: expert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."expert_id_seq" OWNED BY "public"."expert"."id"; + + +-- +-- Name: ext_audit_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ext_audit_plan" ( + "nc_count" integer, + "obs_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_date" character varying(255), + "audit_org" character varying(255), + "audit_standard" character varying(255), + "audit_status" character varying(255), + "audit_type" character varying(255), + "code" character varying(255), + "conclusion" character varying(255), + "coordinator" character varying(255), + "planned_date" character varying(255), + "prep_tasks" character varying(255), + "rectify_done_date" character varying(255), + "rectify_due_date" character varying(255), + "remark" character varying(255), + "report_ref" character varying(255), + "scope" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: ext_audit_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ext_audit_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ext_audit_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ext_audit_plan_id_seq" OWNED BY "public"."ext_audit_plan"."id"; + + +-- +-- Name: ext_system_config; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ext_system_config" ( + "enabled" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "adapter" character varying(255), + "direction" character varying(255), + "endpoint" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "system_type" character varying(255) +); + + +-- +-- Name: ext_system_config_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ext_system_config_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ext_system_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ext_system_config_id_seq" OWNED BY "public"."ext_system_config"."id"; + + +-- +-- Name: favorite; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."favorite" ( + "id" bigint NOT NULL, + "owner_id" bigint, + "dept" character varying(255), + "fav_time" character varying(255), + "folder" character varying(255), + "owner" character varying(255), + "status_id" character varying(255), + "title" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: favorite_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."favorite_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: favorite_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."favorite_id_seq" OWNED BY "public"."favorite"."id"; + + +-- +-- Name: feed; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."feed" ( + "comments" integer NOT NULL, + "images" integer NOT NULL, + "likes" integer NOT NULL, + "id" bigint NOT NULL, + "author" character varying(255), + "dept" character varying(255), + "tags" character varying(255), + "time" character varying(255), + "type" character varying(255), + "comments_json" "text", + "content" "text" +); + + +-- +-- Name: feed_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."feed_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: feed_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."feed_id_seq" OWNED BY "public"."feed"."id"; + + +-- +-- Name: feed_like; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."feed_like" ( + "feed_id" bigint NOT NULL, + "id" bigint NOT NULL, + "user_id" character varying(255) NOT NULL, + "user_name" character varying(255) +); + + +-- +-- Name: feed_like_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."feed_like_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: feed_like_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."feed_like_id_seq" OWNED BY "public"."feed_like"."id"; + + +-- +-- Name: fert_accounting_voucher; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_accounting_voucher" ( + "line_count" integer, + "total_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "posted_at" timestamp(6) with time zone, + "lines_json" character varying(4096), + "batch_ref" character varying(255), + "invoice_ref" character varying(255), + "period" character varying(255), + "poster" character varying(255), + "preparer" character varying(255), + "product_name" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "voucher_date" character varying(255), + "voucher_no" character varying(255), + "voucher_type" character varying(255) +); + + +-- +-- Name: fert_accounting_voucher_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_accounting_voucher_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_accounting_voucher_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_accounting_voucher_id_seq" OWNED BY "public"."fert_accounting_voucher"."id"; + + +-- +-- Name: fert_agri_service; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_agri_service" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "agronomist" character varying(255), + "content" character varying(255), + "crop_type" character varying(255), + "customer" character varying(255), + "effect_note" character varying(255), + "recommended_recipe" character varying(255), + "region" character varying(255), + "remark" character varying(255), + "service_date" character varying(255), + "service_no" character varying(255), + "service_type" character varying(255), + "soil_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fert_agri_service_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_agri_service_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_agri_service_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_agri_service_id_seq" OWNED BY "public"."fert_agri_service"."id"; + + +-- +-- Name: fert_batch_cost; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_batch_cost" ( + "actual_labor_cost" numeric(38,2), + "actual_material_cost" numeric(38,2), + "actual_overhead_cost" numeric(38,2), + "actual_qty" numeric(38,2), + "actual_total_cost" numeric(38,2), + "ferment_days" integer, + "labor_efficiency_variance" numeric(38,2), + "labor_rate_variance" numeric(38,2), + "material_price_variance" numeric(38,2), + "material_qty_variance" numeric(38,2), + "overhead_efficiency_variance" numeric(38,2), + "overhead_volume_variance" numeric(38,2), + "std_labor_cost" numeric(38,2), + "std_material_cost" numeric(38,2), + "std_overhead_cost" numeric(38,2), + "std_qty" numeric(38,2), + "std_total_cost" numeric(38,2), + "std_unit_cost" numeric(38,2), + "total_variance" numeric(38,2), + "unit_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_ref" character varying(255), + "cost_accountant" character varying(255), + "period" character varying(255), + "product_name" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: fert_batch_cost_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_batch_cost_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_batch_cost_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_batch_cost_id_seq" OWNED BY "public"."fert_batch_cost"."id"; + + +-- +-- Name: fert_customer_profile; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_customer_profile" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "address" character varying(255), + "annual_usage_est" character varying(255), + "contact_person" character varying(255), + "contact_phone" character varying(255), + "cooperation_start" character varying(255), + "credit_limit" character varying(255), + "crop_types" character varying(255), + "custom_requirements" character varying(255), + "customer_code" character varying(255), + "customer_name" character varying(255), + "customer_type" character varying(255), + "fert_season" character varying(255), + "owner" character varying(255), + "payment_terms" character varying(255), + "preferred_product" character varying(255), + "region" character varying(255), + "remark" character varying(255), + "soil_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fert_customer_profile_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_customer_profile_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_customer_profile_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_customer_profile_id_seq" OWNED BY "public"."fert_customer_profile"."id"; + + +-- +-- Name: fert_delivery; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_delivery" ( + "carpool_flag" boolean, + "qty" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "order_id" bigint, + "carpool_route" character varying(255), + "carrier" character varying(255), + "customer" character varying(255), + "delivery_date" character varying(255), + "delivery_no" character varying(255), + "driver_name" character varying(255), + "logistics_no" character varying(255), + "operator" character varying(255), + "order_no" character varying(255), + "product_name" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "stock_batch_no" character varying(255), + "unit" character varying(255), + "vehicle_plate" character varying(255) +); + + +-- +-- Name: fert_delivery_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_delivery_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_delivery_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_delivery_id_seq" OWNED BY "public"."fert_delivery"."id"; + + +-- +-- Name: fert_energy_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_energy_log" ( + "benchmark_kgce_per_ton" numeric(38,2), + "electricity_kwh" numeric(38,2), + "fuel_coal_factor" numeric(38,2), + "fuel_qty" numeric(38,2), + "output_qty" numeric(38,2), + "over_benchmark" boolean, + "total_kgce" numeric(38,2), + "unit_kgce_per_ton" numeric(38,2), + "water_ton" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_ref" character varying(255), + "fuel_type" character varying(255), + "log_date" character varying(255), + "process" character varying(255), + "recorder" character varying(255), + "remark" character varying(255), + "shift" character varying(255) +); + + +-- +-- Name: fert_energy_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_energy_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_energy_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_energy_log_id_seq" OWNED BY "public"."fert_energy_log"."id"; + + +-- +-- Name: fert_gas_emission; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_gas_emission" ( + "deodorizer_normal" boolean, + "dust_concentration" numeric(38,2), + "dust_limit" numeric(38,2), + "h2s_concentration" numeric(38,2), + "h2s_limit" numeric(38,2), + "nh3concentration" numeric(38,2), + "nh3limit" numeric(38,2), + "odor_index" numeric(38,2), + "odor_limit" numeric(38,2), + "over_limit" boolean, + "rectified" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "data_source" character varying(255), + "monitor_date" character varying(255), + "outlet_code" character varying(255), + "outlet_desc" character varying(255), + "over_detail" character varying(255), + "recorder" character varying(255), + "rectify_note" character varying(255), + "remark" character varying(255), + "time_period" character varying(255) +); + + +-- +-- Name: fert_gas_emission_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_gas_emission_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_gas_emission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_gas_emission_id_seq" OWNED BY "public"."fert_gas_emission"."id"; + + +-- +-- Name: fert_invoice_ledger; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_invoice_ledger" ( + "amount_excl_tax" numeric(38,2), + "tax_amount" numeric(38,2), + "tax_rate" numeric(38,2), + "total_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "certify_date" character varying(255), + "counterpart" character varying(255), + "goods_desc" character varying(255), + "handler" character varying(255), + "invoice_date" character varying(255), + "invoice_no" character varying(255), + "invoice_type" character varying(255), + "linked_batch_ref" character varying(255), + "linked_order_no" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "voucher_no" character varying(255), + "write_off_date" character varying(255) +); + + +-- +-- Name: fert_invoice_ledger_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_invoice_ledger_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_invoice_ledger_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_invoice_ledger_id_seq" OWNED BY "public"."fert_invoice_ledger"."id"; + + +-- +-- Name: fert_mps; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_mps" ( + "demand_qty" numeric(38,2), + "ferment_days" integer, + "finished_qty" numeric(38,2), + "in_production_qty" numeric(38,2), + "net_production_qty" numeric(38,2), + "opening_stock" numeric(38,2), + "safety_stock" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "latest_charge_date" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "plan_finish_date" character varying(255), + "plan_no" character varying(255), + "product_name" character varying(255), + "product_type" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fert_mps_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_mps_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_mps_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_mps_id_seq" OWNED BY "public"."fert_mps"."id"; + + +-- +-- Name: fert_occ_health; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_occ_health" ( + "dust_limit" double precision, + "dust_mgm3" double precision, + "dust_over_limit" boolean, + "ppe_qty" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "employee_name" character varying(255), + "exam_conclusion" character varying(255), + "exam_institution" character varying(255), + "monitor_method" character varying(255), + "occupational_contraindication" character varying(255), + "ppe_items" character varying(255), + "record_date" character varying(255), + "record_type" character varying(255), + "recorder" character varying(255), + "remark" character varying(255), + "work_station" character varying(255) +); + + +-- +-- Name: fert_occ_health_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_occ_health_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_occ_health_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_occ_health_id_seq" OWNED BY "public"."fert_occ_health"."id"; + + +-- +-- Name: fert_pack_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_pack_order" ( + "actual_qty" numeric(38,2), + "plan_qty" numeric(38,2), + "shelf_life_months" integer, + "stocked" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_no" character varying(255), + "expiry_date" character varying(255), + "label_no" character varying(255), + "operator" character varying(255), + "pack_no" character varying(255), + "pack_spec" character varying(255), + "product_name" character varying(255), + "production_date" character varying(255), + "remark" character varying(255), + "spray_code" character varying(255), + "status" character varying(255), + "work_order_no" character varying(255) +); + + +-- +-- Name: fert_pack_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_pack_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_pack_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_pack_order_id_seq" OWNED BY "public"."fert_pack_order"."id"; + + +-- +-- Name: fert_pkg_material_ledger; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_pkg_material_ledger" ( + "qty" numeric(38,2), + "safety_stock" numeric(38,2), + "unit_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "bin" character varying(255), + "last_inbound_date" character varying(255), + "last_move_type" character varying(255), + "linked_batch_no" character varying(255), + "pack_spec" character varying(255), + "pkg_code" character varying(255), + "pkg_name" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "unit" character varying(255), + "warehouse" character varying(255) +); + + +-- +-- Name: fert_pkg_material_ledger_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_pkg_material_ledger_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_pkg_material_ledger_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_pkg_material_ledger_id_seq" OWNED BY "public"."fert_pkg_material_ledger"."id"; + + +-- +-- Name: fert_process_qc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_process_qc" ( + "co2pct" double precision, + "germination_index" double precision, + "granule_strengthn" double precision, + "moisture_pct" double precision, + "nh3concentration" double precision, + "nh4n" double precision, + "nh4no3ratio" double precision, + "no3n" double precision, + "particle1to4pct" double precision, + "particle_gt4pct" double precision, + "particle_lt1pct" double precision, + "ph" double precision, + "tempc" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_ref" character varying(255), + "ferment_stage" character varying(255), + "inspect_date" character varying(255), + "inspect_no" character varying(255), + "inspect_type" character varying(255), + "inspector" character varying(255), + "maturity_result" character varying(255), + "product_name" character varying(255), + "remark" character varying(255), + "result" character varying(255) +); + + +-- +-- Name: fert_process_qc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_process_qc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_process_qc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_process_qc_id_seq" OWNED BY "public"."fert_process_qc"."id"; + + +-- +-- Name: fert_procure_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_procure_plan" ( + "est_amount" numeric(38,2), + "est_unit_price" numeric(38,2), + "on_hand_qty" numeric(38,2), + "plan_qty" numeric(38,2), + "received_qty" numeric(38,2), + "seasonal" boolean, + "suggest_qty" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "admit_docs" character varying(255), + "approver" character varying(255), + "category" character varying(255), + "material_name" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "plan_no" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "window_end" character varying(255), + "window_start" character varying(255) +); + + +-- +-- Name: fert_procure_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_procure_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_procure_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_procure_plan_id_seq" OWNED BY "public"."fert_procure_plan"."id"; + + +-- +-- Name: fert_product_qc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_product_qc" ( + "fail_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_no" character varying(255), + "disposition" character varying(255), + "inspect_date" character varying(255), + "inspect_no" character varying(255), + "inspector" character varying(255), + "product_name" character varying(255), + "remark" character varying(255), + "result" character varying(255), + "standard_code" character varying(255), + "items_json" "text", + "judge_json" "text" +); + + +-- +-- Name: fert_product_qc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_product_qc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_product_qc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_product_qc_id_seq" OWNED BY "public"."fert_product_qc"."id"; + + +-- +-- Name: fert_qc_standard; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_qc_standard" ( + "max_value" numeric(38,2), + "min_value" numeric(38,2), + "seq" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "direction" character varying(255), + "indicator" character varying(255), + "remark" character varying(255), + "standard_code" character varying(255), + "standard_name" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: fert_qc_standard_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_qc_standard_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_qc_standard_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_qc_standard_id_seq" OWNED BY "public"."fert_qc_standard"."id"; + + +-- +-- Name: fert_raw_material_catalog; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_raw_material_catalog" ( + "cn_ratio" numeric(38,2), + "hm_arsenic_as" numeric(38,2), + "hm_cadmium_cd" numeric(38,2), + "hm_chromium_cr" numeric(38,2), + "hm_lead_pb" numeric(38,2), + "hm_mercury_hg" numeric(38,2), + "organic_matter_pct" numeric(38,2), + "ref_unit_price" numeric(38,2), + "safety_stock_ton" numeric(38,2), + "seasonal" boolean, + "typical_moisture_pct" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "creator" character varying(255), + "material_code" character varying(255), + "material_name" character varying(255), + "ph_range" character varying(255), + "remark" character varying(255), + "seasonal_window_note" character varying(255), + "source_type" character varying(255), + "status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: fert_raw_material_catalog_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_raw_material_catalog_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_raw_material_catalog_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_raw_material_catalog_id_seq" OWNED BY "public"."fert_raw_material_catalog"."id"; + + +-- +-- Name: fert_raw_material_qc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_raw_material_qc" ( + "as_limit" double precision, + "as_over_limit" boolean, + "as_value" double precision, + "ascaris_egg_death_rate" double precision, + "cd_limit" double precision, + "cd_over_limit" boolean, + "cd_value" double precision, + "cr_limit" double precision, + "cr_over_limit" boolean, + "cr_value" double precision, + "fecal_coliform_count" double precision, + "hg_limit" double precision, + "hg_over_limit" boolean, + "hg_value" double precision, + "impurity_pct" double precision, + "moisture_pct" double precision, + "organic_pct" double precision, + "pb_limit" double precision, + "pb_over_limit" boolean, + "pb_value" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "arrival_date" character varying(255), + "category" character varying(255), + "fail_items" character varying(255), + "feedstock_batch_no" character varying(255), + "inspect_date" character varying(255), + "inspect_no" character varying(255), + "inspector" character varying(255), + "material_name" character varying(255), + "remark" character varying(255), + "result" character varying(255), + "supplier" character varying(255) +); + + +-- +-- Name: fert_raw_material_qc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_raw_material_qc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_raw_material_qc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_raw_material_qc_id_seq" OWNED BY "public"."fert_raw_material_qc"."id"; + + +-- +-- Name: fert_safety_patrol_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_safety_patrol_log" ( + "has_hazard" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "plan_id" bigint, + "updated_at" timestamp(6) with time zone, + "checklist_result" "text", + "hazard_category" character varying(255), + "hazard_desc" "text", + "inspector" character varying(255), + "log_status" character varying(255), + "patrol_date" character varying(255), + "patrol_type" character varying(255), + "plan_name" character varying(255), + "rectify_date" character varying(255), + "rectify_deadline" character varying(255), + "rectify_measure" "text", + "rectify_owner" character varying(255), + "rectify_verifier" character varying(255), + "remark" character varying(255), + "shift" character varying(255), + "work_area" character varying(255) +); + + +-- +-- Name: fert_safety_patrol_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_safety_patrol_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_safety_patrol_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_safety_patrol_log_id_seq" OWNED BY "public"."fert_safety_patrol_log"."id"; + + +-- +-- Name: fert_safety_patrol_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_safety_patrol_plan" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "checklist_template" "text", + "cycle_type" character varying(255), + "patrol_type" character varying(255), + "plan_name" character varying(255), + "plan_status" character varying(255), + "remark" character varying(255), + "responsible" character varying(255), + "work_area" character varying(255) +); + + +-- +-- Name: fert_safety_patrol_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_safety_patrol_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_safety_patrol_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_safety_patrol_plan_id_seq" OWNED BY "public"."fert_safety_patrol_plan"."id"; + + +-- +-- Name: fert_sales_line; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_sales_line" ( + "line_amount" numeric(38,2), + "qty" numeric(38,2), + "shipped_qty" numeric(38,2), + "unit_price" numeric(38,2), + "id" bigint NOT NULL, + "order_id" bigint, + "product_name" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: fert_sales_line_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_sales_line_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_sales_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_sales_line_id_seq" OWNED BY "public"."fert_sales_line"."id"; + + +-- +-- Name: fert_sales_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_sales_order" ( + "shipped_amount" numeric(38,2), + "total_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "crop_type" character varying(255), + "custom_recipe" character varying(255), + "customer" character varying(255), + "customer_type" character varying(255), + "due_date" character varying(255), + "order_date" character varying(255), + "order_no" character varying(255), + "region" character varying(255), + "remark" character varying(255), + "sales_rep" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fert_sales_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_sales_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_sales_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_sales_order_id_seq" OWNED BY "public"."fert_sales_order"."id"; + + +-- +-- Name: fert_solid_waste; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_solid_waste" ( + "compliant" boolean, + "disposed_kg" numeric(38,2), + "generated_kg" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "disposal_method" character varying(255), + "disposal_unit" character varying(255), + "manifest_no" character varying(255), + "non_compliant_note" character varying(255), + "record_date" character varying(255), + "recorder" character varying(255), + "remark" character varying(255), + "source_process" character varying(255), + "waste_category" character varying(255) +); + + +-- +-- Name: fert_solid_waste_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_solid_waste_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_solid_waste_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_solid_waste_id_seq" OWNED BY "public"."fert_solid_waste"."id"; + + +-- +-- Name: fert_stock_lot; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_stock_lot" ( + "inbound_total" numeric(38,2), + "outbound_total" numeric(38,2), + "qty" numeric(38,2), + "shelf_life_months" integer, + "unit_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_no" character varying(255), + "category" character varying(255), + "expiry_date" character varying(255), + "inbound_date" character varying(255), + "location" character varying(255), + "material_name" character varying(255), + "remark" character varying(255), + "scan_code" character varying(255), + "source_ref" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "unit" character varying(255), + "warehouse" character varying(255) +); + + +-- +-- Name: fert_stock_lot_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_stock_lot_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_stock_lot_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_stock_lot_id_seq" OWNED BY "public"."fert_stock_lot"."id"; + + +-- +-- Name: fert_stock_move; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_stock_move" ( + "balance_after" numeric(38,2), + "qty" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "lot_id" bigint, + "batch_no" character varying(255), + "location" character varying(255), + "material_name" character varying(255), + "move_date" character varying(255), + "move_type" character varying(255), + "operator" character varying(255), + "ref_no" character varying(255), + "remark" character varying(255), + "scan_code" character varying(255) +); + + +-- +-- Name: fert_stock_move_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_stock_move_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_stock_move_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_stock_move_id_seq" OWNED BY "public"."fert_stock_move"."id"; + + +-- +-- Name: fert_supplier_profile; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_supplier_profile" ( + "avg_impurity_pct" double precision, + "avg_moisture_deviation" double precision, + "cn_ratio" double precision, + "hazard_score" integer, + "hm_arsenic_as" double precision, + "hm_cadmium_cd" double precision, + "hm_chromium_cr" double precision, + "hm_lead_pb" double precision, + "hm_mercury_hg" double precision, + "organic_pct" double precision, + "supply_capacity_ton" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "address" character varying(255), + "admit_date" character varying(255), + "contact_person" character varying(255), + "contact_phone" character varying(255), + "eval_remark" character varying(255), + "harmless_doc" character varying(255), + "last_eval_date" character varying(255), + "license_doc" character varying(255), + "owner" character varying(255), + "rating" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "supplier_code" character varying(255), + "supplier_name" character varying(255) NOT NULL, + "supplier_type" character varying(255), + "supply_materials" character varying(255), + "suspend_reason" character varying(255), + "test_report_doc" character varying(255), + "admit_docs_json" "text" +); + + +-- +-- Name: fert_supplier_profile_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_supplier_profile_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_supplier_profile_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_supplier_profile_id_seq" OWNED BY "public"."fert_supplier_profile"."id"; + + +-- +-- Name: fert_wastewater; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_wastewater" ( + "cod_limit" double precision, + "cod_value" double precision, + "discharge_compliant" boolean, + "dischargedm3" numeric(38,2), + "generatedm3" numeric(38,2), + "nh3nlimit" double precision, + "nh3nvalue" double precision, + "ph" double precision, + "rectified" boolean, + "tp_limit" double precision, + "tp_value" double precision, + "treatedm3" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "over_detail" character varying(255), + "record_date" character varying(255), + "recorder" character varying(255), + "rectify_note" character varying(255), + "remark" character varying(255), + "source" character varying(255), + "treatment_method" character varying(255) +); + + +-- +-- Name: fert_wastewater_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_wastewater_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_wastewater_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_wastewater_id_seq" OWNED BY "public"."fert_wastewater"."id"; + + +-- +-- Name: fert_wip_stock; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_wip_stock" ( + "last_moisture_pct" double precision, + "moisture_alert" boolean, + "moisture_alert_threshold" double precision, + "qty" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "inbound_date" character varying(255), + "last_moisture_check_date" character varying(255), + "location" character varying(255), + "parent_batch_ref" character varying(255), + "product_name" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "unit" character varying(255), + "wip_batch_no" character varying(255), + "wip_type" character varying(255) +); + + +-- +-- Name: fert_wip_stock_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_wip_stock_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_wip_stock_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_wip_stock_id_seq" OWNED BY "public"."fert_wip_stock"."id"; + + +-- +-- Name: fert_work_sub_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fert_work_sub_order" ( + "actual_output_qty" numeric(38,2), + "current_ampere" double precision, + "drying_tempc" double precision, + "labor_cost" numeric(38,2), + "labor_hours" double precision, + "plan_input_qty" numeric(38,2), + "plan_output_qty" numeric(38,2), + "rotation_rpm" double precision, + "seq" integer, + "wip_qty" numeric(38,2), + "created_at" timestamp(6) with time zone, + "equip_param_time" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_end_date" character varying(255), + "actual_start_date" character varying(255), + "equipment_ref" character varying(255), + "parent_batch_ref" character varying(255) NOT NULL, + "plan_end_date" character varying(255), + "plan_start_date" character varying(255), + "process" character varying(255) NOT NULL, + "product_name" character varying(255), + "qc_inspector" character varying(255), + "qc_remark" character varying(255), + "qc_result" character varying(255), + "remark" character varying(255), + "report_remark" character varying(255), + "status" character varying(255), + "sub_order_no" character varying(255), + "wip_location" character varying(255), + "worker" character varying(255) +); + + +-- +-- Name: fert_work_sub_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fert_work_sub_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fert_work_sub_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fert_work_sub_order_id_seq" OWNED BY "public"."fert_work_sub_order"."id"; + + +-- +-- Name: fin_account_aux; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_account_aux" ( + "balance" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "account_code" character varying(255), + "account_name" character varying(255), + "applicant" character varying(255), + "approver" character varying(255), + "aux_dimension" character varying(255), + "aux_val" character varying(255), + "enabled_val" character varying(255), + "reason" character varying(255) +); + + +-- +-- Name: fin_account_aux_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_account_aux_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_account_aux_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_account_aux_id_seq" OWNED BY "public"."fin_account_aux"."id"; + + +-- +-- Name: fin_account_perm; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_account_perm" ( + "can_audit_val" boolean, + "can_create_voucher_val" boolean, + "can_post_val" boolean, + "can_read_val" boolean, + "max_amount" numeric(38,2), + "requires_secondary_auth" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "account_code_pattern" character varying(255), + "account_desc" character varying(255), + "created_by" character varying(255), + "position_code" character varying(255) +); + + +-- +-- Name: fin_account_perm_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_account_perm_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_account_perm_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_account_perm_id_seq" OWNED BY "public"."fin_account_perm"."id"; + + +-- +-- Name: fin_account_standard; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_account_standard" ( + "is_primary" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "account_mapping_notes" character varying(2000), + "report_template" character varying(4000), + "configured_by" character varying(255), + "effective_date" character varying(255), + "remark" character varying(255), + "report_currency" character varying(255), + "standard_code" character varying(255), + "standard_name" character varying(255), + "standard_version" character varying(255), + "std_status" character varying(255) +); + + +-- +-- Name: fin_account_standard_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_account_standard_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_account_standard_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_account_standard_id_seq" OWNED BY "public"."fin_account_standard"."id"; + + +-- +-- Name: fin_advance; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_advance" ( + "amount" numeric(38,2), + "remain_amount" numeric(38,2), + "settled_amount" numeric(38,2), + "ar_ap_item_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "voucher_id" bigint, + "advance_type" character varying(255), + "code" character varying(255), + "contract_ref" character varying(255), + "operator" character varying(255), + "party_name" character varying(255), + "receipt_date" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fin_advance_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_advance_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_advance_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_advance_id_seq" OWNED BY "public"."fin_advance"."id"; + + +-- +-- Name: fin_asset_inventory; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_asset_inventory" ( + "deficit_count" integer, + "surplus_count" integer, + "total_planned" integer, + "total_scanned" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approval_comment" character varying(255), + "approver" character varying(255), + "completed_date" character varying(255), + "counter" character varying(255), + "inventory_type" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "planned_date" character varying(255), + "scope_desc" character varying(255), + "status" character varying(255), + "task_code" character varying(255) +); + + +-- +-- Name: fin_asset_inventory_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_asset_inventory_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_asset_inventory_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_asset_inventory_id_seq" OWNED BY "public"."fin_asset_inventory"."id"; + + +-- +-- Name: fin_asset_inventory_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_asset_inventory_item" ( + "actual_qty" integer, + "book_qty" integer, + "book_value" numeric(38,2), + "asset_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "inventory_id" bigint, + "asset_name" character varying(255), + "asset_no" character varying(255), + "remark" character varying(255), + "result" character varying(255), + "scan_operator" character varying(255), + "scanned_at" character varying(255) +); + + +-- +-- Name: fin_asset_inventory_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_asset_inventory_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_asset_inventory_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_asset_inventory_item_id_seq" OWNED BY "public"."fin_asset_inventory_item"."id"; + + +-- +-- Name: fin_bad_debt; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_bad_debt" ( + "base_amount" numeric(38,2), + "provision_amount" numeric(38,2), + "provision_rate" numeric(38,2), + "ar_ap_item_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "voucher_id" bigint, + "aging_band" character varying(255), + "code" character varying(255), + "method" character varying(255), + "operator" character varying(255), + "party_name" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fin_bad_debt_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_bad_debt_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_bad_debt_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_bad_debt_id_seq" OWNED BY "public"."fin_bad_debt"."id"; + + +-- +-- Name: fin_budget_adj; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_budget_adj" ( + "adjust_amount" numeric(38,2), + "new_amount" numeric(38,2), + "original_amount" numeric(38,2), + "budget_exec_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "apply_date" character varying(255), + "approval_comment" character varying(255), + "approval_date" character varying(255), + "approver" character varying(255), + "budget_item" character varying(255), + "budget_type" character varying(255), + "code" character varying(255), + "period" character varying(255), + "reason" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fin_budget_adj_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_budget_adj_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_budget_adj_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_budget_adj_id_seq" OWNED BY "public"."fin_budget_adj"."id"; + + +-- +-- Name: fin_budget_execution; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_budget_execution" ( + "actual_amount" numeric(38,2), + "alert_threshold" numeric(38,2), + "alerted" boolean, + "budget_amount" numeric(38,2), + "over_budget" boolean, + "variance_amount" numeric(38,2), + "variance_rate" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "budget_item" character varying(255), + "budget_type" character varying(255), + "budget_version" character varying(255), + "company_subject" character varying(255), + "department" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "project_code" character varying(255) +); + + +-- +-- Name: fin_budget_execution_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_budget_execution_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_budget_execution_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_budget_execution_id_seq" OWNED BY "public"."fin_budget_execution"."id"; + + +-- +-- Name: fin_budget_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_budget_plan" ( + "approved_amount" numeric(38,2), + "proposed_amount" numeric(38,2), + "round_no" integer, + "variance_from_top" numeric(38,2), + "budget_exec_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "approval_comment" character varying(255), + "approval_date" character varying(255), + "approver" character varying(255), + "budget_item" character varying(255), + "budget_type" character varying(255), + "budget_year" character varying(255), + "department" character varying(255), + "justification" character varying(255), + "plan_code" character varying(255), + "plan_status" character varying(255), + "submit_date" character varying(255), + "submitter" character varying(255) +); + + +-- +-- Name: fin_budget_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_budget_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_budget_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_budget_plan_id_seq" OWNED BY "public"."fin_budget_plan"."id"; + + +-- +-- Name: fin_cash_journal; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_cash_journal" ( + "amount" numeric(38,2), + "balance" numeric(38,2), + "bank_account_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "payment_id" bigint, + "voucher_id" bigint, + "bank_account_no" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "counterparty" character varying(255), + "direction" character varying(255), + "journal_type" character varying(255), + "operator" character varying(255), + "source" character varying(255), + "summary" character varying(255), + "tx_date" character varying(255) +); + + +-- +-- Name: fin_cash_journal_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_cash_journal_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_cash_journal_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_cash_journal_id_seq" OWNED BY "public"."fin_cash_journal"."id"; + + +-- +-- Name: fin_cip; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_cip" ( + "accumulated_cost" numeric(38,2), + "budgeted_cost" numeric(38,2), + "remaining_budget" numeric(38,2), + "asset_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "actual_end_date" character varying(255), + "approver" character varying(255), + "cip_code" character varying(255), + "cip_status" character varying(255), + "department" character varying(255), + "planned_end_date" character varying(255), + "project_manager" character varying(255), + "project_name" character varying(255), + "remark" character varying(255), + "start_date" character varying(255), + "target_category" character varying(255), + "transfer_date" character varying(255) +); + + +-- +-- Name: fin_cip_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_cip_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_cip_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_cip_id_seq" OWNED BY "public"."fin_cip"."id"; + + +-- +-- Name: fin_cost_calc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_cost_calc" ( + "allocation_rate" numeric(38,2), + "cost_variance" numeric(38,2), + "direct_labor" numeric(38,2), + "direct_material" numeric(38,2), + "driver_quantity" double precision, + "manufacturing_overhead" numeric(38,2), + "standard_cost" numeric(38,2), + "total_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "allocation_driver" character varying(255), + "calc_method" character varying(255), + "code" character varying(255), + "cost_object" character varying(255), + "cost_object_type" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fin_cost_calc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_cost_calc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_cost_calc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_cost_calc_id_seq" OWNED BY "public"."fin_cost_calc"."id"; + + +-- +-- Name: fin_depreciation_alloc; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_depreciation_alloc" ( + "alloc_ratio" numeric(38,2), + "depreciation_amount" numeric(38,2), + "original_depreciation" numeric(38,2), + "asset_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "voucher_id" bigint, + "alloc_status" character varying(255), + "asset_name" character varying(255), + "asset_no" character varying(255), + "cost_center" character varying(255), + "depreciation_method" character varying(255), + "operator" character varying(255), + "period" character varying(255) +); + + +-- +-- Name: fin_depreciation_alloc_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_depreciation_alloc_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_depreciation_alloc_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_depreciation_alloc_id_seq" OWNED BY "public"."fin_depreciation_alloc"."id"; + + +-- +-- Name: fin_elec_archive; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_elec_archive" ( + "exportable" boolean, + "hash_verified" boolean, + "retention_years" integer, + "created_at" timestamp(6) with time zone, + "file_size_bytes" bigint, + "id" bigint NOT NULL, + "source_doc_id" bigint, + "updated_at" timestamp(6) with time zone, + "archive_code" character varying(255), + "archive_date" character varying(255), + "archive_name" character varying(255), + "archive_status" character varying(255), + "archive_type" character varying(255), + "archived_by" character varying(255), + "backed_up_by" character varying(255), + "backup_paths" character varying(255), + "disposal_date" character varying(255), + "file_format" character varying(255), + "file_path" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "sha256hash" character varying(255) +); + + +-- +-- Name: fin_elec_archive_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_elec_archive_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_elec_archive_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_elec_archive_id_seq" OWNED BY "public"."fin_elec_archive"."id"; + + +-- +-- Name: fin_emp_loan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_emp_loan" ( + "deduct_from_salary" boolean, + "loan_amount" numeric(38,2), + "overdue_days" integer, + "remain_amount" numeric(38,2), + "repaid_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "voucher_id" bigint, + "apply_date" character varying(255), + "approval_comment" character varying(255), + "approval_date" character varying(255), + "approver" character varying(255), + "department" character varying(255), + "employee_id" character varying(255), + "employee_name" character varying(255), + "expected_repay_date" character varying(255), + "loan_code" character varying(255), + "loan_status" character varying(255), + "loan_type" character varying(255), + "operator" character varying(255), + "purpose" character varying(255), + "related_expense_code" character varying(255), + "remark" character varying(255), + "settle_date" character varying(255) +); + + +-- +-- Name: fin_emp_loan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_emp_loan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_emp_loan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_emp_loan_id_seq" OWNED BY "public"."fin_emp_loan"."id"; + + +-- +-- Name: fin_field_diff_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_field_diff_log" ( + "id" bigint NOT NULL, + "object_id" bigint, + "operated_at" timestamp(6) with time zone, + "new_val" character varying(2000), + "old_val" character varying(2000), + "action_type" character varying(255), + "client_ip" character varying(255), + "field_label" character varying(255), + "field_name" character varying(255), + "object_code" character varying(255), + "object_type" character varying(255), + "operator" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: fin_field_diff_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_field_diff_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_field_diff_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_field_diff_log_id_seq" OWNED BY "public"."fin_field_diff_log"."id"; + + +-- +-- Name: fin_impairment_test; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_impairment_test" ( + "accumulated_impairment" numeric(38,2), + "book_value" numeric(38,2), + "impairment_loss" numeric(38,2), + "recoverable_amount" numeric(38,2), + "asset_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "voucher_id" bigint, + "approver" character varying(255), + "asset_name" character varying(255), + "asset_type_val" character varying(255), + "preparer" character varying(255), + "status_val" character varying(255), + "test_basis" character varying(255), + "test_date" character varying(255) +); + + +-- +-- Name: fin_impairment_test_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_impairment_test_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_impairment_test_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_impairment_test_id_seq" OWNED BY "public"."fin_impairment_test"."id"; + + +-- +-- Name: fin_lease_right; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_lease_right" ( + "accumulated_amortization" numeric(38,2), + "amortized_periods" integer NOT NULL, + "discount_rate" numeric(38,2), + "lease_liability" numeric(38,2), + "net_right_of_use" numeric(38,2), + "remaining_liability" numeric(38,2), + "right_of_use_value" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "contract_no" character varying(255), + "department" character varying(255), + "lease_asset_desc" character varying(255), + "lease_end_date" character varying(255), + "lease_start_date" character varying(255), + "lessor" character varying(255), + "remark" character varying(255), + "status_val" character varying(255) +); + + +-- +-- Name: fin_lease_right_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_lease_right_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_lease_right_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_lease_right_id_seq" OWNED BY "public"."fin_lease_right"."id"; + + +-- +-- Name: fin_payroll_entry; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_payroll_entry" ( + "gross_salary" numeric(38,2), + "housing_fund_employee" numeric(38,2), + "housing_fund_employer" numeric(38,2), + "income_tax" numeric(38,2), + "is_rd_staff" boolean, + "net_salary" numeric(38,2), + "other_deduction" numeric(38,2), + "social_insurance_employee" numeric(38,2), + "social_insurance_employer" numeric(38,2), + "total_labor_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "employee_id" bigint, + "id" bigint NOT NULL, + "voucher_id" bigint, + "cost_center" character varying(255), + "department" character varying(255), + "employee_name" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status_val" character varying(255) +); + + +-- +-- Name: fin_payroll_entry_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_payroll_entry_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_payroll_entry_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_payroll_entry_id_seq" OWNED BY "public"."fin_payroll_entry"."id"; + + +-- +-- Name: fin_post_loan_check; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_post_loan_check" ( + "compliance_met" boolean, + "created_at" timestamp(6) with time zone, + "financing_id" bigint, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "check_status" character varying(255), + "check_type" character varying(255), + "completed_date" character varying(255), + "compliance_commitment" character varying(255), + "financing_code" character varying(255), + "follow_up_action" character varying(255), + "follow_up_due_date" character varying(255), + "incident_desc" character varying(255), + "lender" character varying(255), + "owner" character varying(255), + "planned_date" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: fin_post_loan_check_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_post_loan_check_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_post_loan_check_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_post_loan_check_id_seq" OWNED BY "public"."fin_post_loan_check"."id"; + + +-- +-- Name: fin_rd_expense; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_rd_expense" ( + "accounting_amount" numeric(38,2), + "deduction_eligible" boolean, + "hnte_amount" numeric(38,2), + "hnte_tech" boolean, + "other_exceeds_cap" boolean, + "overseas_exceeds_limit" boolean, + "tax_deduction_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "voucher_id" bigint, + "code" character varying(255), + "expense_category" character varying(255), + "expense_name" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fin_rd_expense_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_rd_expense_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_rd_expense_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_rd_expense_id_seq" OWNED BY "public"."fin_rd_expense"."id"; + + +-- +-- Name: fin_rd_personnel; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_rd_personnel" ( + "monthly_labor_cost" numeric(38,2), + "monthly_std_hours" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "alloc_rule" character varying(255), + "department" character varying(255), + "employee_id" character varying(255), + "employee_name" character varying(255), + "personnel_code" character varying(255), + "personnel_status" character varying(255), + "project_codes" character varying(255), + "rd_end_date" character varying(255), + "rd_start_date" character varying(255), + "remark" character varying(255), + "role_type" character varying(255), + "staff_type" character varying(255) +); + + +-- +-- Name: fin_rd_personnel_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_rd_personnel_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_rd_personnel_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_rd_personnel_id_seq" OWNED BY "public"."fin_rd_personnel"."id"; + + +-- +-- Name: fin_rd_timesheet; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_rd_timesheet" ( + "allocated_labor_cost" numeric(38,2), + "confirmed_hours" double precision, + "exceeds_legal_limit" boolean, + "reported_hours" double precision, + "total_hours_in_period" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "employee_id" character varying(255), + "employee_name" character varying(255), + "fill_date" character varying(255), + "fill_type" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "reject_reason" character varying(255), + "remark" character varying(255), + "reviewer" character varying(255), + "salary_ref" character varying(255), + "sheet_code" character varying(255), + "sheet_status" character varying(255) +); + + +-- +-- Name: fin_rd_timesheet_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_rd_timesheet_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_rd_timesheet_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_rd_timesheet_id_seq" OWNED BY "public"."fin_rd_timesheet"."id"; + + +-- +-- Name: fin_rev_recognition; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_rev_recognition" ( + "completion_pct" numeric(38,2), + "contract_amount" numeric(38,2), + "cumulative_recognized" numeric(38,2), + "recognized_revenue" numeric(38,2), + "unrecognized" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "voucher_id" bigint, + "code" character varying(255), + "contract_name" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "progress_basis" character varying(255), + "recognition_method" character varying(255), + "remark" character varying(255), + "status_val" character varying(255) +); + + +-- +-- Name: fin_rev_recognition_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_rev_recognition_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_rev_recognition_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_rev_recognition_id_seq" OWNED BY "public"."fin_rev_recognition"."id"; + + +-- +-- Name: fin_threeway_match; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_threeway_match" ( + "gr_amount" numeric(38,2), + "invoice_amount" numeric(38,2), + "po_amount" numeric(38,2), + "variance_amount" numeric(38,2), + "ap_item_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "gr_no" character varying(255), + "invoice_no" character varying(255), + "match_status" character varying(255), + "operator" character varying(255), + "po_no" character varying(255), + "supplier_name" character varying(255), + "variance_reason" character varying(255) +); + + +-- +-- Name: fin_threeway_match_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_threeway_match_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_threeway_match_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_threeway_match_id_seq" OWNED BY "public"."fin_threeway_match"."id"; + + +-- +-- Name: fin_voucher_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fin_voucher_template" ( + "enabled" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "amount_source" character varying(255), + "code" character varying(255), + "created_by" character varying(255), + "credit_account" character varying(255), + "debit_account" character varying(255), + "name" character varying(255), + "summary_template" character varying(255), + "template_type" character varying(255) +); + + +-- +-- Name: fin_voucher_template_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fin_voucher_template_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fin_voucher_template_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fin_voucher_template_id_seq" OWNED BY "public"."fin_voucher_template"."id"; + + +-- +-- Name: financing; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."financing" ( + "amount" numeric(38,2), + "credit_limit" numeric(38,2), + "rate" numeric(38,2), + "term_months" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "company_subject" character varying(255), + "currency" character varying(255), + "end_date" character varying(255), + "financing_type" character varying(255), + "lender" character varying(255), + "owner" character varying(255), + "purpose" character varying(255), + "repay_method" character varying(255), + "start_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: financing_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."financing_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: financing_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."financing_id_seq" OWNED BY "public"."financing"."id"; + + +-- +-- Name: financing_policy; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."financing_policy" ( + "hard_block" boolean, + "limit_value" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "allowed_values" character varying(255), + "created_by" character varying(255), + "description" character varying(255), + "rule_name" character varying(255), + "rule_type" character varying(255), + "scope" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: financing_policy_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."financing_policy_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: financing_policy_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."financing_policy_id_seq" OWNED BY "public"."financing_policy"."id"; + + +-- +-- Name: fixed_asset; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fixed_asset" ( + "accum_depreciation" numeric(38,2), + "depreciated_months" integer, + "monthly_depreciation" numeric(38,2), + "net_value" numeric(38,2), + "original_value" numeric(38,2), + "useful_life_years" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "acquire_date" character varying(255), + "asset_no" character varying(255), + "category" character varying(255), + "department" character varying(255), + "depreciation_method" character varying(255), + "last_depreciation_date" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: fixed_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fixed_asset_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fixed_asset_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fixed_asset_id_seq" OWNED BY "public"."fixed_asset"."id"; + + +-- +-- Name: flow_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."flow_task" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instance_id" bigint NOT NULL, + "assignee" character varying(255), + "node_label" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: flow_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."flow_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: flow_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."flow_task_id_seq" OWNED BY "public"."flow_task"."id"; + + +-- +-- Name: flow_trace; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."flow_trace" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instance_id" bigint NOT NULL, + "node" character varying(255), + "type" character varying(255), + "who" character varying(255), + "opinion" "text" +); + + +-- +-- Name: flow_trace_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."flow_trace_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: flow_trace_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."flow_trace_id_seq" OWNED BY "public"."flow_trace"."id"; + + +-- +-- Name: food_batch; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."food_batch" ( + "qty" double precision, + "remain_qty" double precision, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_no" character varying(255), + "category" character varying(255), + "expiry_date" character varying(255), + "inbound_date" character varying(255), + "material" character varying(255), + "status" character varying(255), + "supplier_name" character varying(255), + "unit" character varying(255), + "warehouse" character varying(255) +); + + +-- +-- Name: food_batch_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."food_batch_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: food_batch_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."food_batch_id_seq" OWNED BY "public"."food_batch"."id"; + + +-- +-- Name: form_instance; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."form_instance" ( + "archived" boolean, + "node_index" integer, + "overtime" boolean, + "urge_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_urged_at" timestamp(6) with time zone, + "origin_user_id" bigint, + "overtime_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "assignee_override" character varying(255), + "category" character varying(255), + "current_node" character varying(255), + "current_node_id" character varying(255), + "origin_user" character varying(255), + "status" character varying(255), + "template_id" character varying(255) NOT NULL, + "template_name" character varying(255), + "title" character varying(255), + "data_json" "text" +); + + +-- +-- Name: form_instance_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."form_instance_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: form_instance_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."form_instance_id_seq" OWNED BY "public"."form_instance"."id"; + + +-- +-- Name: form_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."form_template" ( + "builtin" boolean NOT NULL, + "enabled" boolean DEFAULT true, + "category" character varying(255), + "id" character varying(255) NOT NULL, + "name" character varying(255) NOT NULL, + "org" character varying(255), + "published_at" character varying(255), + "flow_schema_json" "text", + "form_schema_json" "text", + "instructions" "text" +); + + +-- +-- Name: fraud_alert_rule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fraud_alert_rule" ( + "enabled" boolean NOT NULL, + "last_hit_count" integer NOT NULL, + "threshold" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_run_at" timestamp(6) with time zone, + "description" character varying(1024), + "frequency" character varying(255), + "name" character varying(255), + "notify_users" character varying(255), + "rule_type" character varying(255), + "severity" character varying(255), + "threshold_desc" character varying(255) +); + + +-- +-- Name: fraud_alert_rule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."fraud_alert_rule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: fraud_alert_rule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."fraud_alert_rule_id_seq" OWNED BY "public"."fraud_alert_rule"."id"; + + +-- +-- Name: fts_index; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."fts_index" ( + "type" character varying(100) NOT NULL, + "ref_id" character varying(100) NOT NULL, + "title" "text" DEFAULT ''::"text" NOT NULL, + "body" "text" DEFAULT ''::"text" NOT NULL, + "route" "text" DEFAULT ''::"text" NOT NULL +); + + +-- +-- Name: handover; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."handover" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "dept" character varying(255), + "file_paths" character varying(255), + "handover_date" character varying(255), + "handover_person" character varying(255), + "handover_type" character varying(255), + "items" character varying(255), + "job_duties" character varying(255), + "key_contacts" character varying(255), + "pending_task_list" character varying(255), + "receiver" character varying(255), + "status" character varying(255), + "system_accounts" character varying(255) +); + + +-- +-- Name: handover_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."handover_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: handover_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."handover_id_seq" OWNED BY "public"."handover"."id"; + + +-- +-- Name: health_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."health_record" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "dept" character varying(255), + "exam_date" character varying(255), + "exam_type" character varying(255), + "hazard_factor" character varying(255), + "next_exam_date" character varying(255), + "person_name" character varying(255), + "post" character varying(255), + "result" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: health_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."health_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: health_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."health_record_id_seq" OWNED BY "public"."health_record"."id"; + + +-- +-- Name: hr_ai_doc_draft; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_ai_doc_draft" ( + "ai_generated" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "gen_context" character varying(2000), + "doc_content" character varying(8000), + "doc_type" character varying(255), + "operator" character varying(255), + "related_dept" character varying(255), + "related_position" character varying(255), + "review_note" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: hr_ai_doc_draft_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_ai_doc_draft_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_ai_doc_draft_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_ai_doc_draft_id_seq" OWNED BY "public"."hr_ai_doc_draft"."id"; + + +-- +-- Name: hr_appointment_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_appointment_order" ( + "audit_handled" boolean, + "audit_id_ref" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "dept" character varying(255), + "effect_date" character varying(255), + "issuer" character varying(255), + "order_no" character varying(255), + "order_type" character varying(255), + "remark" character varying(255), + "target_name" character varying(255), + "target_post" character varying(255), + "tenure_period" character varying(255) +); + + +-- +-- Name: hr_appointment_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_appointment_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_appointment_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_appointment_order_id_seq" OWNED BY "public"."hr_appointment_order"."id"; + + +-- +-- Name: hr_culture_kpi; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_culture_kpi" ( + "culture_total_score" double precision, + "fused_satisfaction" double precision, + "hr_satisfaction" double precision, + "kpi_contribution" double precision, + "kpi_weight" integer, + "confirmed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "remark" character varying(1000), + "assess_year" character varying(255), + "code" character varying(255), + "confirmed_by" character varying(255), + "cultural_officer" character varying(255), + "culture_grade" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "write_target" character varying(255) +); + + +-- +-- Name: hr_culture_kpi_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_culture_kpi_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_culture_kpi_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_culture_kpi_id_seq" OWNED BY "public"."hr_culture_kpi"."id"; + + +-- +-- Name: hr_emp_satisfaction_survey; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_emp_satisfaction_survey" ( + "hr_overall_score" double precision, + "responded_count" integer, + "score_engagement" double precision, + "score_job_satisfaction" double precision, + "score_management" double precision, + "score_teamwork" double precision, + "score_wellbeing" double precision, + "total_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "close_date" character varying(255), + "code" character varying(255), + "initiator_dept" character varying(255), + "issues_summary" character varying(255), + "open_date" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "survey_period" character varying(255), + "survey_status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: hr_emp_satisfaction_survey_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_emp_satisfaction_survey_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_emp_satisfaction_survey_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_emp_satisfaction_survey_id_seq" OWNED BY "public"."hr_emp_satisfaction_survey"."id"; + + +-- +-- Name: hr_event_archive_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_event_archive_log" ( + "created_at" timestamp(6) with time zone, + "dossier_id" bigint, + "dossier_item_id" bigint, + "id" bigint NOT NULL, + "archive_status" character varying(255), + "dept" character varying(255), + "employee_name" character varying(255), + "employee_no" character varying(255), + "error_msg" character varying(255), + "event_date" character varying(255), + "event_desc" character varying(255), + "event_type" character varying(255), + "file_refs" character varying(255), + "operator" character varying(255) +); + + +-- +-- Name: hr_event_archive_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_event_archive_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_event_archive_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_event_archive_log_id_seq" OWNED BY "public"."hr_event_archive_log"."id"; + + +-- +-- Name: hr_interview_question; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_interview_question" ( + "ai_generated" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "job_id" bigint, + "content" character varying(2000), + "ref_answer" character varying(2000), + "creator" character varying(255), + "difficulty" character varying(255), + "position" character varying(255), + "question_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: hr_interview_question_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_interview_question_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_interview_question_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_interview_question_id_seq" OWNED BY "public"."hr_interview_question"."id"; + + +-- +-- Name: hr_labor_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_labor_contract" ( + "created_at" timestamp(6) with time zone, + "dossier_item_id" bigint, + "id" bigint NOT NULL, + "prev_contract_id" bigint, + "updated_at" timestamp(6) with time zone, + "auth_status" character varying(255), + "batch_id" character varying(255), + "contract_no" character varying(255), + "contract_type" character varying(255), + "dept" character varying(255), + "employee_name" character varying(255), + "employee_no" character varying(255), + "esign_flow_id" character varying(255), + "esign_platform" character varying(255), + "expire_date" character varying(255), + "remark" character varying(255), + "sign_date" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "template_name" character varying(255), + "term" character varying(255) +); + + +-- +-- Name: hr_labor_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_labor_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_labor_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_labor_contract_id_seq" OWNED BY "public"."hr_labor_contract"."id"; + + +-- +-- Name: hr_labor_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_labor_template" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "applicable_to" character varying(255), + "created_by" character varying(255), + "legal_review_comment" character varying(255), + "legal_review_date" character varying(255), + "legal_reviewed_by" character varying(255), + "name" character varying(255), + "required_clauses" character varying(255), + "status" character varying(255), + "template_type" character varying(255), + "updated_by" character varying(255), + "version" character varying(255), + "body_template" "text" +); + + +-- +-- Name: hr_labor_template_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_labor_template_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_labor_template_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_labor_template_id_seq" OWNED BY "public"."hr_labor_template"."id"; + + +-- +-- Name: hr_recruit_candidate; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_recruit_candidate" ( + "ai_score" integer, + "work_years" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "job_id" bigint, + "updated_at" timestamp(6) with time zone, + "ai_report" character varying(255), + "education" character varying(255), + "expected_salary" character varying(255), + "interview_note" character varying(255), + "interview_time" character varying(255), + "name" character varying(255), + "phone" character varying(255), + "resume_summary" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: hr_recruit_candidate_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_recruit_candidate_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_recruit_candidate_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_recruit_candidate_id_seq" OWNED BY "public"."hr_recruit_candidate"."id"; + + +-- +-- Name: hr_recruit_job; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hr_recruit_job" ( + "headcount" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "channel" character varying(255), + "dept" character varying(255), + "hr_owner" character varying(255), + "position" character varying(255), + "remark" character varying(255), + "requirement" character varying(255), + "salary_range" character varying(255), + "status" character varying(255), + "target_date" character varying(255) +); + + +-- +-- Name: hr_recruit_job_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hr_recruit_job_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hr_recruit_job_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hr_recruit_job_id_seq" OWNED BY "public"."hr_recruit_job"."id"; + + +-- +-- Name: hzs_hazard_source; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."hzs_hazard_source" ( + "consequence" integer, + "exposure" integer, + "likelihood" integer, + "need_permit" boolean NOT NULL, + "risk_value" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "accident_type" character varying(255), + "assess_date" character varying(255), + "code" character varying(255), + "control_measure" character varying(255), + "dept" character varying(255), + "description" character varying(255), + "dimension" character varying(255), + "name" character varying(255), + "responsible" character varying(255), + "risk_level" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: hzs_hazard_source_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."hzs_hazard_source_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: hzs_hazard_source_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."hzs_hazard_source_id_seq" OWNED BY "public"."hzs_hazard_source"."id"; + + +-- +-- Name: intel; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."intel" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "capture_date" character varying(255), + "category" character varying(255), + "keyword" character varying(255), + "owner" character varying(255), + "publish_date" character varying(255), + "ref_url" character varying(255), + "region" character varying(255), + "source" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: intel_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."intel_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: intel_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."intel_id_seq" OWNED BY "public"."intel"."id"; + + +-- +-- Name: internal_newsletter; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."internal_newsletter" ( + "view_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "issue_pdf_url" character varying(500), + "review_trail" character varying(1000), + "attach_urls" character varying(2000), + "author" character varying(255), + "author_dept" character varying(255), + "code" character varying(255), + "content_type" character varying(255), + "current_handler" character varying(255), + "issue_tag" character varying(255), + "publish_date" character varying(255), + "status" character varying(255), + "title" character varying(255), + "body" "text" +); + + +-- +-- Name: internal_newsletter_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."internal_newsletter_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: internal_newsletter_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."internal_newsletter_id_seq" OWNED BY "public"."internal_newsletter"."id"; + + +-- +-- Name: inventory_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."inventory_item" ( + "max_stock" double precision, + "min_stock" double precision, + "quantity" double precision NOT NULL, + "safety_stock" double precision NOT NULL, + "unit_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "abc_class" character varying(255), + "category" character varying(255), + "location" character varying(255), + "material_name" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: inventory_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."inventory_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: inventory_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."inventory_item_id_seq" OWNED BY "public"."inventory_item"."id"; + + +-- +-- Name: inventory_valuation_config; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."inventory_valuation_config" ( + "approved_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "approval_comment" character varying(255), + "approver" character varying(255), + "cost_center" character varying(255), + "effective_period_from" character varying(255), + "effective_period_to" character varying(255), + "material_category" character varying(255), + "method" character varying(255), + "reason" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: inventory_valuation_config_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."inventory_valuation_config_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: inventory_valuation_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."inventory_valuation_config_id_seq" OWNED BY "public"."inventory_valuation_config"."id"; + + +-- +-- Name: invoice; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."invoice" ( + "amount" numeric(38,2), + "tax_amount" numeric(38,2), + "total" numeric(38,2), + "contract_id" bigint, + "id" bigint NOT NULL, + "project_id" bigint, + "code" character varying(255), + "issue_date" character varying(255), + "number" character varying(255), + "party_name" character varying(255), + "status" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: invoice_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."invoice_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: invoice_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."invoice_id_seq" OWNED BY "public"."invoice"."id"; + + +-- +-- Name: ip_asset; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_asset" ( + "cited_count" integer, + "total_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "rd_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "agency" character varying(255), + "agency_contact" character varying(255), + "applicant" character varying(255), + "apply_date" character varying(255), + "apply_no" character varying(255), + "cert_no" character varying(255), + "grant_date" character varying(255), + "grant_no" character varying(255), + "inventors" character varying(255), + "ip_type" character varying(255), + "legal_status" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "product_line" character varying(255), + "proposal_no" character varying(255), + "public_no" character varying(255), + "rd_project_name" character varying(255), + "stage" character varying(255), + "tech_field" character varying(255), + "remark" "text" +); + + +-- +-- Name: ip_asset_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_asset_event" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "client_ip" character varying(255), + "event_type" character varying(255), + "field" character varying(255), + "from_value" character varying(255), + "operator" character varying(255), + "to_value" character varying(255), + "note" "text" +); + + +-- +-- Name: ip_asset_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_asset_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_asset_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_asset_event_id_seq" OWNED BY "public"."ip_asset_event"."id"; + + +-- +-- Name: ip_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_asset_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_asset_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_asset_id_seq" OWNED BY "public"."ip_asset"."id"; + + +-- +-- Name: ip_budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_budget" ( + "amount" numeric(38,2), + "fiscal_year" integer, + "quarter" integer, + "used" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "category" character varying(255), + "cost_center" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ip_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_budget_id_seq" OWNED BY "public"."ip_budget"."id"; + + +-- +-- Name: ip_fee; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_fee" ( + "amount" numeric(38,2), + "official_fee" numeric(38,2), + "service_fee" numeric(38,2), + "year_no" integer, + "budget_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "payment_id" bigint, + "agency" character varying(255), + "cost_center" character varying(255), + "due_date" character varying(255), + "fee_type" character varying(255), + "ip_asset_name" character varying(255), + "ip_asset_no" character varying(255), + "paid_date" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ip_fee_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_fee_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_fee_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_fee_id_seq" OWNED BY "public"."ip_fee"."id"; + + +-- +-- Name: ip_free_tag; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_free_tag" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "resource_id" bigint, + "color" character varying(255), + "created_by" character varying(255), + "resource_type" character varying(255), + "tag_category" character varying(255), + "tag_name" character varying(255) +); + + +-- +-- Name: ip_free_tag_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_free_tag_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_free_tag_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_free_tag_id_seq" OWNED BY "public"."ip_free_tag"."id"; + + +-- +-- Name: ip_knowledge; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_knowledge" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "author" character varying(255), + "doc_type" character varying(255), + "keywords" character varying(255), + "source" character varying(255), + "tech_field" character varying(255), + "title" character varying(255), + "content" "text" +); + + +-- +-- Name: ip_knowledge_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_knowledge_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_knowledge_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_knowledge_id_seq" OWNED BY "public"."ip_knowledge"."id"; + + +-- +-- Name: ip_license_transfer; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_license_transfer" ( + "amount" numeric(38,2), + "annual_fee" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "legal_contract_id" bigint, + "updated_at" timestamp(6) with time zone, + "contract_no" character varying(255), + "counterpart" character varying(255), + "effect_date" character varying(255), + "expire_date" character varying(255), + "handler" character varying(255), + "ip_asset_name" character varying(255), + "ip_asset_no" character varying(255), + "ipc_code" character varying(255), + "op_type" character varying(255), + "related_project" character varying(255), + "sign_date" character varying(255), + "status" character varying(255), + "tech_tags" character varying(255), + "remark" "text" +); + + +-- +-- Name: ip_license_transfer_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_license_transfer_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_license_transfer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_license_transfer_id_seq" OWNED BY "public"."ip_license_transfer"."id"; + + +-- +-- Name: ip_regulation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_regulation" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "category" character varying(255), + "code" character varying(255), + "current_version" character varying(255), + "last_approval_note" character varying(255), + "owner" character varying(255), + "published_date" character varying(255), + "status" character varying(255), + "title" character varying(255), + "content" "text" +); + + +-- +-- Name: ip_regulation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_regulation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_regulation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_regulation_id_seq" OWNED BY "public"."ip_regulation"."id"; + + +-- +-- Name: ip_regulation_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_regulation_version" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "regulation_id" bigint, + "action" character varying(255), + "change_note" character varying(255), + "operator" character varying(255), + "version" character varying(255), + "content_snapshot" "text" +); + + +-- +-- Name: ip_regulation_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_regulation_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_regulation_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_regulation_version_id_seq" OWNED BY "public"."ip_regulation_version"."id"; + + +-- +-- Name: ip_sci_cred_archive; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ip_sci_cred_archive" ( + "packed" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "patent_id" bigint, + "project_id" bigint, + "updated_at" timestamp(6) with time zone, + "arch_status" character varying(255), + "archive_date" character varying(255), + "archive_no" character varying(255), + "credit_level" character varying(255), + "decl_type" character varying(255), + "file_url" character varying(255), + "ip_type" character varying(255), + "title" character varying(255), + "uploader" character varying(255), + "valid_until" character varying(255), + "remark" "text" +); + + +-- +-- Name: ip_sci_cred_archive_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ip_sci_cred_archive_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ip_sci_cred_archive_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ip_sci_cred_archive_id_seq" OWNED BY "public"."ip_sci_cred_archive"."id"; + + +-- +-- Name: it_account_audit_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_account_audit_record" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "target_user_id" bigint, + "action" character varying(255), + "after_roles" character varying(255), + "after_state" character varying(255), + "audit_conclusion" character varying(255), + "audit_date" character varying(255), + "before_roles" character varying(255), + "before_state" character varying(255), + "hr_event_desc" character varying(255), + "note" character varying(255), + "operator" character varying(255), + "target_login_name" character varying(255), + "target_user_name" character varying(255), + "trigger_source" character varying(255) +); + + +-- +-- Name: it_account_audit_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_account_audit_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_account_audit_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_account_audit_record_id_seq" OWNED BY "public"."it_account_audit_record"."id"; + + +-- +-- Name: it_asset; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_asset" ( + "depreciation_years" integer, + "purchase_amount" numeric(38,2), + "residual_rate_pct" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "asset_no" character varying(255), + "barcode" character varying(255), + "category" character varying(255), + "dept" character varying(255), + "holder" character varying(255), + "location" character varying(255), + "name" character varying(255), + "purchase_date" character varying(255), + "serial_no" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "warranty_date" character varying(255) +); + + +-- +-- Name: it_asset_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_asset_event" ( + "asset_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "asset_name" character varying(255), + "asset_no" character varying(255), + "completed_date" character varying(255), + "event_date" character varying(255), + "event_no" character varying(255), + "event_type" character varying(255), + "expected_return_date" character varying(255), + "from_holder" character varying(255), + "from_location" character varying(255), + "note" character varying(255), + "operator" character varying(255), + "reason" character varying(255), + "result" character varying(255), + "status" character varying(255), + "to_holder" character varying(255), + "to_location" character varying(255), + "vendor" character varying(255) +); + + +-- +-- Name: it_asset_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_asset_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_asset_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_asset_event_id_seq" OWNED BY "public"."it_asset_event"."id"; + + +-- +-- Name: it_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_asset_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_asset_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_asset_id_seq" OWNED BY "public"."it_asset"."id"; + + +-- +-- Name: it_backup_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_backup_record" ( + "drill_duration_min" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "size_mb" bigint, + "backup_target" character varying(255), + "backup_type" character varying(255), + "completed_at" character varying(255), + "drill_conclusion" character varying(255), + "executed_at" character varying(255), + "fail_reason" character varying(255), + "note" character varying(255), + "operator" character varying(255), + "record_type" character varying(255), + "status" character varying(255), + "storage_path" character varying(255), + "strategy" character varying(255), + "task_name" character varying(255) +); + + +-- +-- Name: it_backup_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_backup_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_backup_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_backup_record_id_seq" OWNED BY "public"."it_backup_record"."id"; + + +-- +-- Name: it_budget_line; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_budget_line" ( + "budget_amount" numeric(38,2), + "used_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "allocate_dept" character varying(255), + "category" character varying(255), + "fiscal_year" character varying(255), + "name" character varying(255), + "note" character varying(255), + "owner" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: it_budget_line_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_budget_line_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_budget_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_budget_line_id_seq" OWNED BY "public"."it_budget_line"."id"; + + +-- +-- Name: it_data_export_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_data_export_request" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "apply_date" character varying(255), + "apply_dept" character varying(255), + "approval_note" character varying(255), + "approved_date" character varying(255), + "approver" character varying(255), + "data_scope" character varying(255), + "export_file_path" character varying(255), + "export_format" character varying(255), + "exported_by" character varying(255), + "exported_date" character varying(255), + "planned_export_date" character varying(255), + "purpose" character varying(255), + "recipient" character varying(255), + "request_no" character varying(255), + "sensitivity_level" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: it_data_export_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_data_export_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_data_export_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_data_export_request_id_seq" OWNED BY "public"."it_data_export_request"."id"; + + +-- +-- Name: it_demand_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_demand_request" ( + "estimated_days" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "feasibility" character varying(2000), + "description" character varying(4000), + "actual_date" character varying(255), + "demand_no" character varying(255), + "demand_type" character varying(255), + "expected_date" character varying(255), + "it_owner" character varying(255), + "priority" character varying(255), + "reject_reason" character varying(255), + "remark" character varying(255), + "requester" character varying(255), + "requester_dept" character varying(255), + "scheduled_date" character varying(255), + "status" character varying(255), + "submitted_date" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: it_demand_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_demand_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_demand_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_demand_request_id_seq" OWNED BY "public"."it_demand_request"."id"; + + +-- +-- Name: it_disaster_drill_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_disaster_drill_record" ( + "actual_rto_minutes" integer, + "rpo_minutes" integer, + "rto_minutes" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_date" character varying(255), + "drill_result" character varying(255), + "executor" character varying(255), + "ha_scheme" character varying(255), + "issues" character varying(255), + "next_drill_date" character varying(255), + "note" character varying(255), + "planned_date" character varying(255), + "primary_node" character varying(255), + "record_no" character varying(255), + "record_type" character varying(255), + "remediation" character varying(255), + "scheme_detail" character varying(255), + "standby_node" character varying(255), + "status" character varying(255), + "target_system" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: it_disaster_drill_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_disaster_drill_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_disaster_drill_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_disaster_drill_record_id_seq" OWNED BY "public"."it_disaster_drill_record"."id"; + + +-- +-- Name: it_dlp_policy; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_dlp_policy" ( + "hit_count" integer, + "priority" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_hit_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "action_on_hit" character varying(255), + "affected_fields" character varying(255), + "approved_by" character varying(255), + "created_by" character varying(255), + "effective_date" character varying(255), + "expiry_date" character varying(255), + "policy_name" character varying(255), + "policy_no" character varying(255), + "policy_scope" character varying(255), + "policy_type" character varying(255), + "remark" character varying(255), + "rule_detail" character varying(255), + "status" character varying(255), + "trigger_condition" character varying(255) +); + + +-- +-- Name: it_dlp_policy_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_dlp_policy_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_dlp_policy_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_dlp_policy_id_seq" OWNED BY "public"."it_dlp_policy"."id"; + + +-- +-- Name: it_inspection; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_inspection" ( + "alerted" boolean, + "value" double precision, + "checked_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "monitor_item_id" bigint, + "check_date" character varying(255), + "inspector" character varying(255), + "metric" character varying(255), + "note" character varying(255), + "result" character varying(255), + "target" character varying(255) +); + + +-- +-- Name: it_inspection_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_inspection_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_inspection_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_inspection_id_seq" OWNED BY "public"."it_inspection"."id"; + + +-- +-- Name: it_inspection_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_inspection_report" ( + "attention_count" integer, + "crit_count" integer, + "monitor_total" integer, + "normal_count" integer, + "total_inspections" integer, + "warn_count" integer, + "created_at" timestamp(6) with time zone, + "generated_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "anomaly_list" character varying(4000), + "metrics_summary" character varying(4000), + "generated_by" character varying(255), + "period_end" character varying(255), + "period_start" character varying(255), + "report_type" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: it_inspection_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_inspection_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_inspection_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_inspection_report_id_seq" OWNED BY "public"."it_inspection_report"."id"; + + +-- +-- Name: it_knowledge_article; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_knowledge_article" ( + "use_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "author" character varying(255), + "category" character varying(255), + "keywords" character varying(255), + "status" character varying(255), + "title" character varying(255), + "content" "text" +); + + +-- +-- Name: it_knowledge_article_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_knowledge_article_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_knowledge_article_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_knowledge_article_id_seq" OWNED BY "public"."it_knowledge_article"."id"; + + +-- +-- Name: it_monitor_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_monitor_item" ( + "crit_threshold" double precision, + "enabled" boolean, + "last_value" double precision, + "warn_threshold" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_check_at" timestamp(6) with time zone, + "direction" character varying(255), + "last_status" character varying(255), + "metric" character varying(255), + "owner" character varying(255), + "target" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: it_monitor_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_monitor_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_monitor_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_monitor_item_id_seq" OWNED BY "public"."it_monitor_item"."id"; + + +-- +-- Name: it_network_device; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_network_device" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "admin" character varying(255), + "config_backup_status" character varying(255), + "device_type" character varying(255), + "firmware_version" character varying(255), + "last_config_backup_date" character varying(255), + "location" character varying(255), + "management_ip" character varying(255), + "model" character varying(255), + "name" character varying(255), + "note" character varying(255), + "purchase_date" character varying(255), + "run_status" character varying(255), + "vlan_segment" character varying(255), + "warranty_date" character varying(255) +); + + +-- +-- Name: it_network_device_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_network_device_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_network_device_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_network_device_id_seq" OWNED BY "public"."it_network_device"."id"; + + +-- +-- Name: it_procurement_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_procurement_order" ( + "budget_amount" numeric(38,2), + "contract_amount" numeric(38,2), + "paid_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "linked_asset_id" bigint, + "applicant" character varying(255), + "apply_date" character varying(255), + "apply_dept" character varying(255), + "approval_note" character varying(255), + "approved_date" character varying(255), + "approver" character varying(255), + "category" character varying(255), + "description" character varying(255), + "expected_delivery_date" character varying(255), + "order_no" character varying(255), + "payment_date" character varying(255), + "payment_status" character varying(255), + "receipt_note" character varying(255), + "received_by" character varying(255), + "received_date" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "supplier_contact" character varying(255), + "supplier_phone" character varying(255), + "title" character varying(255), + "voucher_no" character varying(255) +); + + +-- +-- Name: it_procurement_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_procurement_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_procurement_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_procurement_order_id_seq" OWNED BY "public"."it_procurement_order"."id"; + + +-- +-- Name: it_remote_assist_session; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_remote_assist_session" ( + "satisfaction" integer, + "accepted_at" timestamp(6) with time zone, + "authorized_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "ended_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "started_at" timestamp(6) with time zone, + "apply_date" character varying(255), + "auth_code" character varying(255), + "cancel_reason" character varying(255), + "contact" character varying(255), + "engineer" character varying(255), + "issue_desc" character varying(255), + "requester" character varying(255), + "requester_dept" character varying(255), + "resolution" character varying(255), + "session_no" character varying(255), + "status" character varying(255), + "tool_type" character varying(255), + "urgency" character varying(255) +); + + +-- +-- Name: it_remote_assist_session_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_remote_assist_session_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_remote_assist_session_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_remote_assist_session_id_seq" OWNED BY "public"."it_remote_assist_session"."id"; + + +-- +-- Name: it_sec_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_sec_event" ( + "data_leaked" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "affected_systems" character varying(255), + "closed_at" character varying(255), + "conclusion" character varying(255), + "description" character varying(255), + "discovered_at" character varying(255), + "discovery_method" character varying(255), + "event_no" character varying(255), + "event_type" character varying(255), + "remediation" character varying(255), + "reporter" character varying(255), + "responded_at" character varying(255), + "responder" character varying(255), + "response_actions" character varying(255), + "root_cause" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: it_sec_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_sec_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_sec_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_sec_event_id_seq" OWNED BY "public"."it_sec_event"."id"; + + +-- +-- Name: it_sec_policy_config; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_sec_policy_config" ( + "enabled" boolean, + "priority" integer, + "created_at" timestamp(6) with time zone, + "device_id" bigint, + "id" bigint NOT NULL, + "device_name" character varying(255), + "dst_address" character varying(255), + "last_sync_date" character varying(255), + "operator" character varying(255), + "policy_action" character varying(255), + "policy_name" character varying(255), + "policy_no" character varying(255), + "policy_type" character varying(255), + "port_proto" character varying(255), + "remark" character varying(255), + "src_address" character varying(255), + "traffic_dir" character varying(255) +); + + +-- +-- Name: it_sec_policy_config_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_sec_policy_config_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_sec_policy_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_sec_policy_config_id_seq" OWNED BY "public"."it_sec_policy_config"."id"; + + +-- +-- Name: it_sec_training_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_sec_training_record" ( + "avg_score" integer, + "participant_count" integer, + "pass_count" integer, + "pass_rate_pct" integer, + "phishing_click_rate_pct" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_end_date" character varying(255), + "actual_start_date" character varying(255), + "description" character varying(255), + "materials" character varying(255), + "note" character varying(255), + "organizer" character varying(255), + "planned_date" character varying(255), + "remediation" character varying(255), + "status" character varying(255), + "target_audience" character varying(255), + "title" character varying(255), + "trainer" character varying(255), + "training_no" character varying(255), + "training_type" character varying(255) +); + + +-- +-- Name: it_sec_training_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_sec_training_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_sec_training_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_sec_training_record_id_seq" OWNED BY "public"."it_sec_training_record"."id"; + + +-- +-- Name: it_service_ticket; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_service_ticket" ( + "breached" boolean, + "escalation_level" integer, + "satisfaction" integer, + "closed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "first_response_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "knowledge_id" bigint, + "resolve_due_at" timestamp(6) with time zone, + "resolved_at" timestamp(6) with time zone, + "response_due_at" timestamp(6) with time zone, + "submitted_at" timestamp(6) with time zone, + "assignee" character varying(255), + "contact" character varying(255), + "description" character varying(255), + "priority" character varying(255), + "request_type" character varying(255), + "requester" character varying(255), + "requester_dept" character varying(255), + "resolution" character varying(255), + "status" character varying(255), + "submitted_date" character varying(255), + "ticket_no" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: it_service_ticket_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_service_ticket_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_service_ticket_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_service_ticket_id_seq" OWNED BY "public"."it_service_ticket"."id"; + + +-- +-- Name: it_software_license; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_software_license" ( + "annual_fee" numeric(38,2), + "assigned_seats" integer, + "seats" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "activation_key" character varying(255), + "category" character varying(255), + "dept" character varying(255), + "expiry_date" character varying(255), + "license_no" character varying(255), + "license_type" character varying(255), + "purchase_date" character varying(255), + "software_name" character varying(255), + "status" character varying(255), + "vendor" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: it_software_license_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_software_license_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_software_license_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_software_license_id_seq" OWNED BY "public"."it_software_license"."id"; + + +-- +-- Name: it_sys_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_sys_log" ( + "archived" boolean, + "retention_months" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "detail" character varying(255), + "event_type" character varying(255), + "handle_note" character varying(255), + "handle_status" character varying(255), + "handler" character varying(255), + "log_date" character varying(255), + "log_level" character varying(255), + "log_source" character varying(255), + "occurred_at" character varying(255), + "source_host" character varying(255), + "source_ip" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: it_sys_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_sys_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_sys_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_sys_log_id_seq" OWNED BY "public"."it_sys_log"."id"; + + +-- +-- Name: it_ticket_attachment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_ticket_attachment" ( + "created_at" timestamp(6) with time zone, + "file_size" bigint, + "id" bigint NOT NULL, + "ticket_id" bigint, + "file_content" character varying(65536), + "attach_type" character varying(255), + "file_name" character varying(255), + "file_url" character varying(255), + "mime_type" character varying(255), + "remark" character varying(255), + "uploader" character varying(255) +); + + +-- +-- Name: it_ticket_attachment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_ticket_attachment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_ticket_attachment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_ticket_attachment_id_seq" OWNED BY "public"."it_ticket_attachment"."id"; + + +-- +-- Name: it_vuln_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."it_vuln_record" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "affected_target" character varying(255), + "description" character varying(255), + "discovered_date" character varying(255), + "discovery_method" character varying(255), + "fix_status" character varying(255), + "note" character varying(255), + "patch_installed_by" character varying(255), + "patch_installed_date" character varying(255), + "patch_no" character varying(255), + "plan_fix_date" character varying(255), + "risk_accept_reason" character varying(255), + "title" character varying(255), + "verified_by" character varying(255), + "verified_date" character varying(255), + "vuln_id" character varying(255), + "vuln_level" character varying(255) +); + + +-- +-- Name: it_vuln_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."it_vuln_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: it_vuln_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."it_vuln_record_id_seq" OWNED BY "public"."it_vuln_record"."id"; + + +-- +-- Name: lab_budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_budget" ( + "budget_amount" numeric(38,2), + "used_amount" numeric(38,2), + "warn_pct" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "budget_no" character varying(255), + "dimension" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "related_no" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: lab_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_budget_id_seq" OWNED BY "public"."lab_budget"."id"; + + +-- +-- Name: lab_cost_entry; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_cost_entry" ( + "amount" numeric(38,2), + "quantity" double precision, + "rate" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "task_id" bigint, + "cost_date" character varying(255), + "cost_type" character varying(255), + "operator" character varying(255), + "related_no" character varying(255), + "related_type" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: lab_cost_entry_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_cost_entry_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_cost_entry_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_cost_entry_id_seq" OWNED BY "public"."lab_cost_entry"."id"; + + +-- +-- Name: lab_deviation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_deviation" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "recheck_task_id" bigint, + "task_id" bigint, + "description" character varying(2000), + "investigation" character varying(2000), + "root_cause" character varying(2000), + "approver" character varying(255), + "closed_date" character varying(255), + "decision" character varying(255), + "detect_item" character varying(255), + "deviation_no" character varying(255), + "deviation_type" character varying(255), + "investigator" character varying(255), + "reporter" character varying(255), + "result_value" character varying(255), + "sample_name" character varying(255), + "standard_limit" character varying(255), + "status" character varying(255), + "task_no" character varying(255) +); + + +-- +-- Name: lab_deviation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_deviation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_deviation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_deviation_id_seq" OWNED BY "public"."lab_deviation"."id"; + + +-- +-- Name: lab_eln; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_eln" ( + "signed" boolean, + "version" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "sample_id" bigint, + "data_hash" character varying(128), + "signature_hash" character varying(128), + "attachments" character varying(1000), + "calculation" character varying(2000), + "conclusion" character varying(2000), + "purpose" character varying(2000), + "raw_data" character varying(4000), + "steps" character varying(4000), + "author" character varying(255), + "eln_no" character varying(255), + "related_to" character varying(255), + "sign_method" character varying(255), + "signed_at" character varying(255), + "signer" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: lab_eln_access_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_eln_access_log" ( + "created_at" timestamp(6) with time zone, + "eln_id" bigint, + "id" bigint NOT NULL, + "detail" character varying(512), + "action" character varying(255), + "eln_ref" character varying(255), + "ip" character varying(255), + "occurred_at" character varying(255), + "operator" character varying(255), + "operator_dept" character varying(255) +); + + +-- +-- Name: lab_eln_access_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_eln_access_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_eln_access_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_eln_access_log_id_seq" OWNED BY "public"."lab_eln_access_log"."id"; + + +-- +-- Name: lab_eln_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_eln_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_eln_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_eln_id_seq" OWNED BY "public"."lab_eln"."id"; + + +-- +-- Name: lab_eln_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_eln_version" ( + "version" integer, + "eln_id" bigint, + "id" bigint NOT NULL, + "snapshot_at" timestamp(6) with time zone, + "data_hash" character varying(128), + "snapshot" character varying(8000), + "change_note" character varying(255), + "editor" character varying(255) +); + + +-- +-- Name: lab_eln_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_eln_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_eln_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_eln_version_id_seq" OWNED BY "public"."lab_eln_version"."id"; + + +-- +-- Name: lab_haz_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_haz_request" ( + "dispose_qty" double precision, + "qty" double precision, + "return_qty" double precision, + "sds_confirmed" boolean, + "used_qty" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reagent_id" bigint, + "applicant" character varying(255), + "approver1" character varying(255), + "approver2" character varying(255), + "cas_no" character varying(255), + "disposal_method" character varying(255), + "issued_date" character varying(255), + "purpose" character varying(255), + "reagent_name" character varying(255), + "related_task" character varying(255), + "request_no" character varying(255), + "status" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: lab_haz_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_haz_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_haz_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_haz_request_id_seq" OWNED BY "public"."lab_haz_request"."id"; + + +-- +-- Name: lab_incident; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_incident" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "description" character varying(2000), + "rectification" character varying(2000), + "area" character varying(255), + "closed_date" character varying(255), + "handler" character varying(255), + "incident_no" character varying(255), + "incident_type" character varying(255), + "occurred_at" character varying(255), + "reporter" character varying(255), + "severity" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: lab_incident_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_incident_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_incident_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_incident_id_seq" OWNED BY "public"."lab_incident"."id"; + + +-- +-- Name: lab_instrument; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_instrument" ( + "calibration_cycle_days" integer, + "locked" boolean, + "maintenance_cycle_days" integer, + "used_hours" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "asset_no" character varying(255), + "calibration_date" character varying(255), + "commission_date" character varying(255), + "location" character varying(255), + "lock_reason" character varying(255), + "manager" character varying(255), + "model" character varying(255), + "name" character varying(255), + "next_calibration" character varying(255), + "next_maintenance" character varying(255), + "status" character varying(255), + "supplier" character varying(255) +); + + +-- +-- Name: lab_instrument_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_instrument_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_instrument_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_instrument_id_seq" OWNED BY "public"."lab_instrument"."id"; + + +-- +-- Name: lab_instrument_maint; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_instrument_maint" ( + "cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instrument_id" bigint, + "accept_note" character varying(255), + "acceptor" character varying(255), + "cert_body" character varying(255), + "cert_no" character varying(255), + "description" character varying(255), + "finish_date" character varying(255), + "handler" character varying(255), + "instrument_name" character varying(255), + "parts_replaced" character varying(255), + "reporter" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "type" character varying(255), + "valid_until" character varying(255) +); + + +-- +-- Name: lab_instrument_maint_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_instrument_maint_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_instrument_maint_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_instrument_maint_id_seq" OWNED BY "public"."lab_instrument_maint"."id"; + + +-- +-- Name: lab_internal_audit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_internal_audit" ( + "pass_rate" double precision, + "sample_pct" integer, + "sampled_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "conclusion" character varying(2000), + "sampled_json" character varying(4000), + "findings_json" character varying(8000), + "audit_no" character varying(255), + "auditor" character varying(255), + "period" character varying(255), + "scope" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: lab_internal_audit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_internal_audit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_internal_audit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_internal_audit_id_seq" OWNED BY "public"."lab_internal_audit"."id"; + + +-- +-- Name: lab_reagent; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_reagent" ( + "min_stock" double precision, + "stock_qty" double precision, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_no" character varying(255), + "cas_no" character varying(255), + "category" character varying(255), + "code" character varying(255), + "expiry_date" character varying(255), + "name" character varying(255), + "sds_file" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "storage_condition" character varying(255), + "supplier" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: lab_reagent_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_reagent_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_reagent_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_reagent_id_seq" OWNED BY "public"."lab_reagent"."id"; + + +-- +-- Name: lab_report_archive; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_report_archive" ( + "retention_years" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "patent_id" bigint, + "report_id" bigint, + "sample_id" bigint, + "archive_date" character varying(255), + "archive_no" character varying(255), + "archivist" character varying(255), + "category" character varying(255), + "file_refs" character varying(255), + "keywords" character varying(255), + "patent_name" character varying(255), + "patent_no" character varying(255), + "project_no" character varying(255), + "retention_until" character varying(255), + "sample_no" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: lab_report_archive_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_report_archive_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_report_archive_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_report_archive_id_seq" OWNED BY "public"."lab_report_archive"."id"; + + +-- +-- Name: lab_reservation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_reservation" ( + "actual_hours" double precision, + "planned_hours" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instrument_id" bigint, + "applicant" character varying(255), + "check_in_at" character varying(255), + "check_out_at" character varying(255), + "consumables_used" character varying(255), + "end_time" character varying(255), + "instrument_name" character varying(255), + "purpose" character varying(255), + "run_status" character varying(255), + "start_time" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: lab_reservation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_reservation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_reservation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_reservation_id_seq" OWNED BY "public"."lab_reservation"."id"; + + +-- +-- Name: lab_safety_check; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_safety_check" ( + "abnormal_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "remark" character varying(1000), + "items_json" character varying(4000), + "area" character varying(255), + "check_no" character varying(255), + "checked_date" character varying(255), + "inspector" character varying(255), + "plan_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: lab_safety_check_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_safety_check_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_safety_check_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_safety_check_id_seq" OWNED BY "public"."lab_safety_check"."id"; + + +-- +-- Name: lab_sample; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_sample" ( + "retain_period_days" integer, + "retained" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assignee" character varying(255), + "barcode" character varying(255), + "disposal_type" character varying(255), + "disposed_date" character varying(255), + "form" character varying(255), + "project_name" character varying(255), + "quantity" character varying(255), + "receive_date" character varying(255), + "recheck_reminder_date" character varying(255), + "retain_custodian" character varying(255), + "retain_due_date" character varying(255), + "rfid_tag" character varying(255), + "sample_name" character varying(255), + "sample_no" character varying(255), + "sample_type" character varying(255), + "shelf_location" character varying(255), + "source" character varying(255), + "status" character varying(255), + "storage_condition" character varying(255), + "test_items" character varying(255) +); + + +-- +-- Name: lab_sample_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_sample_event" ( + "by_scan" boolean, + "id" bigint NOT NULL, + "occurred_at" timestamp(6) with time zone, + "sample_id" bigint, + "action" character varying(255), + "disposal_type" character varying(255), + "from_status" character varying(255), + "location" character varying(255), + "operator" character varying(255), + "remark" character varying(255), + "sample_no" character varying(255), + "to_status" character varying(255) +); + + +-- +-- Name: lab_sample_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_sample_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_sample_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_sample_event_id_seq" OWNED BY "public"."lab_sample_event"."id"; + + +-- +-- Name: lab_sample_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_sample_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_sample_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_sample_id_seq" OWNED BY "public"."lab_sample"."id"; + + +-- +-- Name: lab_stocktake; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_stocktake" ( + "applied" boolean, + "loss_count" integer, + "profit_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "operator" character varying(255), + "scope" character varying(255), + "status" character varying(255), + "stocktake_date" character varying(255), + "stocktake_no" character varying(255) +); + + +-- +-- Name: lab_stocktake_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_stocktake_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_stocktake_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_stocktake_id_seq" OWNED BY "public"."lab_stocktake"."id"; + + +-- +-- Name: lab_stocktake_line; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_stocktake_line" ( + "book_qty" double precision, + "by_scan" boolean, + "counted_qty" double precision, + "diff" double precision, + "id" bigint NOT NULL, + "reagent_id" bigint, + "stocktake_id" bigint, + "reagent_code" character varying(255), + "reagent_name" character varying(255), + "result" character varying(255) +); + + +-- +-- Name: lab_stocktake_line_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_stocktake_line_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_stocktake_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_stocktake_line_id_seq" OWNED BY "public"."lab_stocktake_line"."id"; + + +-- +-- Name: lab_test_method; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_test_method" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "detect_item" character varying(255), + "instrument" character varying(255), + "method_no" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "sample_type" character varying(255), + "sop_file" character varying(255), + "standard_basis" character varying(255), + "standard_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: lab_test_method_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_test_method_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_test_method_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_test_method_id_seq" OWNED BY "public"."lab_test_method"."id"; + + +-- +-- Name: lab_test_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_test_report" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "sample_id" bigint, + "task_id" bigint, + "conclusion" character varying(255), + "detect_item" character varying(255), + "issue_status" character varying(255), + "method_no" character varying(255), + "remark" character varying(255), + "report_no" character varying(255), + "reviewer" character varying(255), + "sample_name" character varying(255), + "sample_no" character varying(255), + "sign_date" character varying(255), + "signer" character varying(255), + "template" character varying(255), + "tester" character varying(255) +); + + +-- +-- Name: lab_test_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_test_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_test_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_test_report_id_seq" OWNED BY "public"."lab_test_report"."id"; + + +-- +-- Name: lab_test_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_test_task" ( + "result_locked" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instrument_id" bigint, + "sample_id" bigint, + "detect_item" character varying(255), + "due_date" character varying(255), + "instrument_name" character varying(255), + "judge" character varying(255), + "method_name" character varying(255), + "method_no" character varying(255), + "priority" character varying(255), + "related_to" character varying(255), + "remark" character varying(255), + "result_source" character varying(255), + "result_unit" character varying(255), + "result_value" character varying(255), + "reviewed_at" character varying(255), + "reviewer" character varying(255), + "sample_name" character varying(255), + "sample_no" character varying(255), + "standard_limit" character varying(255), + "status" character varying(255), + "task_no" character varying(255), + "tester" character varying(255) +); + + +-- +-- Name: lab_test_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_test_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_test_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_test_task_id_seq" OWNED BY "public"."lab_test_task"."id"; + + +-- +-- Name: lab_waste; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."lab_waste" ( + "sync_epb" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "custodian" character varying(255), + "disposal_method" character varying(255), + "disposed_date" character varying(255), + "generated_date" character varying(255), + "name" character varying(255), + "quantity" character varying(255), + "source" character varying(255), + "status" character varying(255), + "storage_location" character varying(255), + "transfer_date" character varying(255), + "transfer_to" character varying(255), + "waste_no" character varying(255) +); + + +-- +-- Name: lab_waste_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."lab_waste_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: lab_waste_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."lab_waste_id_seq" OWNED BY "public"."lab_waste"."id"; + + +-- +-- Name: leader_trip; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."leader_trip" ( + "end_time" timestamp(6) with time zone, + "id" bigint NOT NULL, + "start_time" timestamp(6) with time zone, + "destination" character varying(255), + "leader" character varying(255), + "purpose" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: leader_trip_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."leader_trip_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: leader_trip_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."leader_trip_id_seq" OWNED BY "public"."leader_trip"."id"; + + +-- +-- Name: legal_auth_limit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_auth_limit" ( + "amount_limit" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "auth_no" character varying(255), + "auth_type" character varying(255), + "effective_date" character varying(255), + "expire_date" character varying(255), + "grantee" character varying(255), + "grantee_dept" character varying(255), + "grantee_post" character varying(255), + "grantor" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_auth_limit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_auth_limit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_auth_limit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_auth_limit_id_seq" OWNED BY "public"."legal_auth_limit"."id"; + + +-- +-- Name: legal_compliance_alert_rule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_alert_rule" ( + "enabled" boolean, + "trigger_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "alert_level" character varying(255), + "condition" character varying(255), + "last_triggered_at" character varying(255), + "notify_roles" character varying(255), + "rule_code" character varying(255), + "rule_name" character varying(255), + "threshold" character varying(255), + "trigger_scene" character varying(255) +); + + +-- +-- Name: legal_compliance_alert_rule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_alert_rule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_alert_rule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_alert_rule_id_seq" OWNED BY "public"."legal_compliance_alert_rule"."id"; + + +-- +-- Name: legal_compliance_anon_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_anon_report" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "handle_result" character varying(2000), + "report_content" character varying(4000), + "handler" character varying(255), + "query_token" character varying(255), + "report_no" character varying(255), + "report_type" character varying(255), + "reporter_info" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "suspect_dept" character varying(255), + "suspect_person" character varying(255) +); + + +-- +-- Name: legal_compliance_anon_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_anon_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_anon_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_anon_report_id_seq" OWNED BY "public"."legal_compliance_anon_report"."id"; + + +-- +-- Name: legal_compliance_cert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_cert" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "applicant_dept" character varying(255), + "cert_no" character varying(255), + "cert_type" character varying(255), + "content" character varying(255), + "issued_by" character varying(255), + "issued_date" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "valid_until" character varying(255) +); + + +-- +-- Name: legal_compliance_cert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_cert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_cert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_cert_id_seq" OWNED BY "public"."legal_compliance_cert"."id"; + + +-- +-- Name: legal_compliance_checklist; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_checklist" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "check_items" character varying(255), + "domain" character varying(255), + "frequency" character varying(255), + "last_task_date" character varying(255), + "list_no" character varying(255), + "remark" character varying(255), + "responsible_dept" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: legal_compliance_checklist_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_checklist_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_checklist_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_checklist_id_seq" OWNED BY "public"."legal_compliance_checklist"."id"; + + +-- +-- Name: legal_compliance_obligation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_obligation" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "due_date" character varying(255), + "frequency" character varying(255), + "obligation" character varying(255), + "owner" character varying(255), + "regulation" character varying(255), + "remark" character varying(255), + "responsible_dept" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_compliance_obligation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_obligation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_obligation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_obligation_id_seq" OWNED BY "public"."legal_compliance_obligation"."id"; + + +-- +-- Name: legal_compliance_risk_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_risk_report" ( + "finding_count" integer NOT NULL, + "archived_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reviewed_at" timestamp(6) with time zone, + "scan_ref_id" bigint, + "archive_ref" character varying(255), + "domain" character varying(255), + "report_no" character varying(255), + "reporter" character varying(255), + "review_comment" character varying(255), + "reviewer" character varying(255), + "risk_level" character varying(255), + "scan_source_type" character varying(255), + "status" character varying(255), + "findings_text" "text", + "suggestion_text" "text" +); + + +-- +-- Name: legal_compliance_risk_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_risk_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_risk_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_risk_report_id_seq" OWNED BY "public"."legal_compliance_risk_report"."id"; + + +-- +-- Name: legal_compliance_self_check_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_self_check_task" ( + "checklist_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assignee" character varying(255), + "checklist_title" character varying(255), + "due_date" character varying(255), + "period" character varying(255), + "responsible_dept" character varying(255), + "review_comment" character varying(255), + "review_date" character varying(255), + "reviewer" character varying(255), + "self_check_result" character varying(255), + "status" character varying(255), + "submit_date" character varying(255), + "task_no" character varying(255) +); + + +-- +-- Name: legal_compliance_self_check_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_self_check_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_self_check_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_self_check_task_id_seq" OWNED BY "public"."legal_compliance_self_check_task"."id"; + + +-- +-- Name: legal_compliance_violation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_compliance_violation" ( + "loss_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "description" character varying(2000), + "remediation_measure" character varying(2000), + "dept" character varying(255), + "handler" character varying(255), + "incident_date" character varying(255), + "incident_no" character varying(255), + "punishment" character varying(255), + "remediation_due" character varying(255), + "responsible_person" character varying(255), + "source" character varying(255), + "status" character varying(255), + "title" character varying(255), + "violation_type" character varying(255) +); + + +-- +-- Name: legal_compliance_violation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_compliance_violation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_compliance_violation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_compliance_violation_id_seq" OWNED BY "public"."legal_compliance_violation"."id"; + + +-- +-- Name: legal_credit_invest; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_credit_invest" ( + "blacklisted" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "customer_id" bigint, + "id" bigint NOT NULL, + "conclusion" character varying(255), + "conclusion_date" character varying(255), + "conclusion_opinion" character varying(255), + "court_rec" character varying(255), + "credit_score" character varying(255), + "customer_name" character varying(255), + "investigation_type" character varying(255), + "investigator" character varying(255), + "litigation_history" character varying(255), + "remark" character varying(255), + "scope" character varying(255), + "status" character varying(255), + "target_completion_date" character varying(255) +); + + +-- +-- Name: legal_credit_invest_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_credit_invest_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_credit_invest_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_credit_invest_id_seq" OWNED BY "public"."legal_credit_invest"."id"; + + +-- +-- Name: legal_entity; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_entity" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "authorized_id_card" character varying(255), + "authorized_representative" character varying(255), + "bank_account" character varying(255), + "bank_name" character varying(255), + "contact_address" character varying(255), + "credit_code" character varying(255), + "entity_type" character varying(255), + "legal_id_card" character varying(255), + "legal_representative" character varying(255), + "name" character varying(255), + "note" character varying(255), + "phone" character varying(255), + "registered_address" character varying(255), + "tax_number" character varying(255) +); + + +-- +-- Name: legal_entity_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_entity_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_entity_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_entity_id_seq" OWNED BY "public"."legal_entity"."id"; + + +-- +-- Name: legal_external_regulation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_external_regulation" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "impact_description" character varying(2000), + "effective_date" character varying(255), + "expire_date" character varying(255), + "internal_map" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "notify_depts" character varying(255), + "priority" character varying(255), + "reg_no" character varying(255), + "reg_type" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: legal_external_regulation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_external_regulation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_external_regulation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_external_regulation_id_seq" OWNED BY "public"."legal_external_regulation"."id"; + + +-- +-- Name: legal_financial_guarantee; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_financial_guarantee" ( + "guarantee_amount" numeric(38,2), + "case_id" bigint, + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "beneficiary" character varying(255), + "contract_name" character varying(255), + "expire_date" character varying(255), + "guarantee_no" character varying(255), + "guarantee_type" character varying(255), + "issue_date" character varying(255), + "issuing_bank" character varying(255), + "remark" character varying(255), + "settlement_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_financial_guarantee_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_financial_guarantee_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_financial_guarantee_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_financial_guarantee_id_seq" OWNED BY "public"."legal_financial_guarantee"."id"; + + +-- +-- Name: legal_hr_non_compete; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_hr_non_compete" ( + "compensation_monthly" numeric(38,2), + "restriction_period" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "labor_contract_id" bigint, + "dept" character varying(255), + "employee_id" character varying(255), + "employee_name" character varying(255), + "end_date" character varying(255), + "position" character varying(255), + "restricted_industries" character varying(255), + "signed_date" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "violation_note" character varying(255) +); + + +-- +-- Name: legal_hr_non_compete_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_hr_non_compete_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_hr_non_compete_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_hr_non_compete_id_seq" OWNED BY "public"."legal_hr_non_compete"."id"; + + +-- +-- Name: legal_internal_control_matrix; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_internal_control_matrix" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "control_measure" character varying(255), + "control_type" character varying(255), + "effectiveness" character varying(255), + "frequency" character varying(255), + "last_test_date" character varying(255), + "owner" character varying(255), + "process" character varying(255), + "remark" character varying(255), + "risk_point" character varying(255) +); + + +-- +-- Name: legal_internal_control_matrix_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_internal_control_matrix_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_internal_control_matrix_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_internal_control_matrix_id_seq" OWNED BY "public"."legal_internal_control_matrix"."id"; + + +-- +-- Name: legal_ip_infringement_case; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_ip_infringement_case" ( + "claim_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "firm_id_ref" bigint, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "evaluation_summary" character varying(1000), + "clue_description" character varying(2000), + "progress_note" character varying(2000), + "assigned_lawyer" character varying(255), + "case_direction" character varying(255), + "case_no" character varying(255), + "closing_result" character varying(255), + "counterparty" character varying(255), + "decision" character varying(255), + "found_date" character varying(255), + "handler" character varying(255), + "ip_type" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: legal_ip_infringement_case_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_ip_infringement_case_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_ip_infringement_case_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_ip_infringement_case_id_seq" OWNED BY "public"."legal_ip_infringement_case"."id"; + + +-- +-- Name: legal_knowledge; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_knowledge" ( + "view_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "author" character varying(255), + "biz_scene" character varying(255), + "category" character varying(255), + "code" character varying(255), + "content" character varying(255), + "keywords" character varying(255), + "publish_date" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: legal_knowledge_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_knowledge_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_knowledge_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_knowledge_id_seq" OWNED BY "public"."legal_knowledge"."id"; + + +-- +-- Name: legal_legal_consult; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_legal_consult" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assignee" character varying(255), + "code" character varying(255), + "replied_date" character varying(255), + "request_dept" character varying(255), + "requester" character varying(255), + "status" character varying(255), + "subject" character varying(255), + "urgency" character varying(255), + "detail" "text", + "legal_opinion" "text" +); + + +-- +-- Name: legal_legal_consult_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_legal_consult_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_legal_consult_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_legal_consult_id_seq" OWNED BY "public"."legal_legal_consult"."id"; + + +-- +-- Name: legal_litigation_case; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_litigation_case" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "case_name" character varying(255), + "case_no" character varying(255), + "cause" character varying(255), + "filing_date" character varying(255), + "key_date" character varying(255), + "law_firm" character varying(255), + "lawyer" character varying(255), + "opponent" character varying(255), + "our_role" character varying(255), + "remark" character varying(255), + "result" character varying(255), + "stage" character varying(255), + "status" character varying(255), + "tribunal" character varying(255) +); + + +-- +-- Name: legal_litigation_case_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_litigation_case_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_litigation_case_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_litigation_case_id_seq" OWNED BY "public"."legal_litigation_case"."id"; + + +-- +-- Name: legal_litigation_document; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_litigation_document" ( + "case_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "keywords" character varying(1000), + "summary" character varying(2000), + "archive_no" character varying(255), + "doc_date" character varying(255), + "doc_name" character varying(255), + "doc_type" character varying(255), + "file_path" character varying(255), + "from_party" character varying(255) +); + + +-- +-- Name: legal_litigation_document_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_litigation_document_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_litigation_document_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_litigation_document_id_seq" OWNED BY "public"."legal_litigation_document"."id"; + + +-- +-- Name: legal_litigation_expense; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_litigation_expense" ( + "amount" numeric(38,2), + "case_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "case_name" character varying(255), + "expense_type" character varying(255), + "pay_date" character varying(255), + "payee" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_litigation_expense_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_litigation_expense_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_litigation_expense_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_litigation_expense_id_seq" OWNED BY "public"."legal_litigation_expense"."id"; + + +-- +-- Name: legal_litigation_firm; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_litigation_firm" ( + "total_cases" integer NOT NULL, + "win_cases" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "contact" character varying(255), + "cooperated_since" character varying(255), + "fee_standard" character varying(255), + "firm_name" character varying(255), + "lawyer_name" character varying(255), + "remark" character varying(255), + "special_field" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_litigation_firm_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_litigation_firm_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_litigation_firm_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_litigation_firm_id_seq" OWNED BY "public"."legal_litigation_firm"."id"; + + +-- +-- Name: legal_opinion_letter; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_opinion_letter" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approve_comment" character varying(255), + "approver" character varying(255), + "archive_no" character varying(255), + "content" character varying(255), + "issue_date" character varying(255), + "legal_staff" character varying(255), + "opinion_no" character varying(255), + "related_module" character varying(255), + "request_dept" character varying(255), + "status" character varying(255), + "subject" character varying(255) +); + + +-- +-- Name: legal_opinion_letter_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_opinion_letter_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_opinion_letter_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_opinion_letter_id_seq" OWNED BY "public"."legal_opinion_letter"."id"; + + +-- +-- Name: legal_policy_revision; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_policy_revision" ( + "created_at" timestamp(6) with time zone, + "form_instance_id" bigint, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "change_points" character varying(2000), + "reason" character varying(2000), + "content" character varying(4000), + "applicant" character varying(255), + "applicant_dept" character varying(255), + "category" character varying(255), + "deprecation_date" character varying(255), + "effective_date" character varying(255), + "policy_no" character varying(255), + "remark" character varying(255), + "revision_no" character varying(255), + "revision_type" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: legal_policy_revision_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_policy_revision_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_policy_revision_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_policy_revision_id_seq" OWNED BY "public"."legal_policy_revision"."id"; + + +-- +-- Name: legal_regulation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_regulation" ( + "read_count" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "prev_version_id" bigint, + "doc_type" character varying(255), + "expire_date" character varying(255), + "expire_reason" character varying(255), + "publish_date" character varying(255), + "publisher" character varying(255), + "reg_no" character varying(255), + "responsible_dept" character varying(255), + "review_comment" character varying(255), + "reviewer" character varying(255), + "scope" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "title" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: legal_regulation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_regulation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_regulation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_regulation_id_seq" OWNED BY "public"."legal_regulation"."id"; + + +-- +-- Name: legal_regulatory_submission; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_regulatory_submission" ( + "overdue_alert" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "content" character varying(255), + "due_date" character varying(255), + "regulator" character varying(255), + "remark" character varying(255), + "reporting_period" character varying(255), + "reporting_type" character varying(255), + "status" character varying(255), + "submission_no" character varying(255), + "submit_date" character varying(255), + "submitter" character varying(255) +); + + +-- +-- Name: legal_regulatory_submission_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_regulatory_submission_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_regulatory_submission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_regulatory_submission_id_seq" OWNED BY "public"."legal_regulatory_submission"."id"; + + +-- +-- Name: legal_risk_assess_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_risk_assess_task" ( + "quarter" integer, + "year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assigned_dept" character varying(255), + "assigned_to" character varying(255), + "batch_code" character varying(255), + "due_date" character varying(255), + "launch_date" character varying(255), + "period" character varying(255), + "review_note" character varying(255), + "risk_change_summary" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_risk_assess_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_risk_assess_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_risk_assess_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_risk_assess_task_id_seq" OWNED BY "public"."legal_risk_assess_task"."id"; + + +-- +-- Name: legal_risk_assessment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_risk_assessment" ( + "impact" integer, + "likelihood" integer, + "score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assess_date" character varying(255), + "category" character varying(255), + "code" character varying(255), + "due_date" character varying(255), + "level" character varying(255), + "measure" character varying(255), + "owner" character varying(255), + "response" character varying(255), + "responsible_dept" character varying(255), + "risk_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_risk_assessment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_risk_assessment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_risk_assessment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_risk_assessment_id_seq" OWNED BY "public"."legal_risk_assessment"."id"; + + +-- +-- Name: legal_risk_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_risk_event" ( + "loss_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "financing_contract_id" bigint, + "id" bigint NOT NULL, + "related_risk_id" bigint, + "closed_date" character varying(255), + "corrective_action" character varying(255), + "description" character varying(255), + "discovered_by" character varying(255), + "event_code" character varying(255), + "event_type" character varying(255), + "involved_party" character varying(255), + "occur_date" character varying(255), + "owner" character varying(255), + "preventive_action" character varying(255), + "root_cause" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: legal_risk_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_risk_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_risk_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_risk_event_id_seq" OWNED BY "public"."legal_risk_event"."id"; + + +-- +-- Name: legal_risk_measure; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_risk_measure" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "risk_assess_id" bigint, + "completed_date" character varying(255), + "description" character varying(255), + "due_date" character varying(255), + "measure_no" character varying(255), + "owner" character varying(255), + "owner_dept" character varying(255), + "result" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: legal_risk_measure_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_risk_measure_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_risk_measure_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_risk_measure_id_seq" OWNED BY "public"."legal_risk_measure"."id"; + + +-- +-- Name: legal_supplier_blacklist; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_supplier_blacklist" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "related_case_id" bigint, + "listed_by" character varying(255), + "listed_date" character varying(255), + "reason" character varying(255), + "remove_reason" character varying(255), + "removed_date" character varying(255), + "status" character varying(255), + "supplier_name" character varying(255) +); + + +-- +-- Name: legal_supplier_blacklist_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_supplier_blacklist_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_supplier_blacklist_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_supplier_blacklist_id_seq" OWNED BY "public"."legal_supplier_blacklist"."id"; + + +-- +-- Name: legal_trade_secret_asset; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_trade_secret_asset" ( + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "status_note" character varying(1000), + "authorized_persons" character varying(2000), + "description" character varying(2000), + "asset_no" character varying(255), + "custodian" character varying(255), + "name" character varying(255), + "owner_dept" character varying(255), + "protected_since" character varying(255), + "review_date" character varying(255), + "secret_level" character varying(255), + "secret_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: legal_trade_secret_asset_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_trade_secret_asset_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_trade_secret_asset_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_trade_secret_asset_id_seq" OWNED BY "public"."legal_trade_secret_asset"."id"; + + +-- +-- Name: legal_training; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."legal_training" ( + "avg_score" double precision, + "duration" double precision, + "participant_count" integer, + "pass_count" integer, + "pass_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assess_method" character varying(255), + "code" character varying(255), + "participants" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "title" character varying(255), + "train_date" character varying(255), + "trainer" character varying(255), + "training_type" character varying(255), + "venue" character varying(255) +); + + +-- +-- Name: legal_training_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."legal_training_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: legal_training_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."legal_training_id_seq" OWNED BY "public"."legal_training"."id"; + + +-- +-- Name: local_resource; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."local_resource" ( + "rating" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cert_expire_date" character varying(255), + "contact" character varying(255), + "evaluate_comment" character varying(255), + "name" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "phone" character varying(255), + "res_type" character varying(255), + "scope" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: local_resource_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."local_resource_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: local_resource_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."local_resource_id_seq" OWNED BY "public"."local_resource"."id"; + + +-- +-- Name: logistics_budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_budget" ( + "amount" numeric(38,2), + "used_amount" numeric(38,2), + "year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "alloc_basis" character varying(255), + "category" character varying(255), + "code" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: logistics_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_budget_id_seq" OWNED BY "public"."logistics_budget"."id"; + + +-- +-- Name: logistics_expense; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_expense" ( + "amount" numeric(38,2), + "driver_value" double precision, + "budget_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "category" character varying(255), + "code" character varying(255), + "dept_name" character varying(255), + "expense_date" character varying(255), + "expense_type" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "supplier_name" character varying(255) +); + + +-- +-- Name: logistics_expense_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_expense_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_expense_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_expense_id_seq" OWNED BY "public"."logistics_expense"."id"; + + +-- +-- Name: logistics_supplier; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_supplier" ( + "avg_score" double precision, + "eval_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "address" character varying(255), + "bank_account" character varying(255), + "bank_name" character varying(255), + "category" character varying(255), + "contact" character varying(255), + "credit_code" character varying(255), + "email" character varying(255), + "name" character varying(255), + "phone" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: logistics_supplier_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_supplier_contract" ( + "amount" numeric(38,2), + "paid_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supplier_id" bigint, + "updated_at" timestamp(6) with time zone, + "contract_no" character varying(255), + "contract_type" character varying(255), + "end_date" character varying(255), + "handler" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "supplier_name" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: logistics_supplier_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_supplier_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_supplier_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_supplier_contract_id_seq" OWNED BY "public"."logistics_supplier_contract"."id"; + + +-- +-- Name: logistics_supplier_eval; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_supplier_eval" ( + "score" integer, + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supplier_id" bigint, + "comment" character varying(255), + "dimension" character varying(255), + "eval_date" character varying(255), + "evaluator" character varying(255), + "period" character varying(255), + "supplier_name" character varying(255) +); + + +-- +-- Name: logistics_supplier_eval_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_supplier_eval_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_supplier_eval_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_supplier_eval_id_seq" OWNED BY "public"."logistics_supplier_eval"."id"; + + +-- +-- Name: logistics_supplier_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_supplier_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_supplier_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_supplier_id_seq" OWNED BY "public"."logistics_supplier"."id"; + + +-- +-- Name: logistics_supplier_payment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_supplier_payment" ( + "amount" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supplier_id" bigint, + "handler" character varying(255), + "pay_date" character varying(255), + "pay_no" character varying(255), + "pay_type" character varying(255), + "purpose" character varying(255), + "remark" character varying(255), + "supplier_name" character varying(255), + "voucher_no" character varying(255) +); + + +-- +-- Name: logistics_supplier_payment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_supplier_payment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_supplier_payment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_supplier_payment_id_seq" OWNED BY "public"."logistics_supplier_payment"."id"; + + +-- +-- Name: logistics_survey; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_survey" ( + "avg_score" double precision, + "response_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "category" character varying(255), + "creator" character varying(255), + "description" character varying(255), + "end_date" character varying(255), + "period" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: logistics_survey_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_survey_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_survey_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_survey_id_seq" OWNED BY "public"."logistics_survey"."id"; + + +-- +-- Name: logistics_survey_response; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_survey_response" ( + "score" integer, + "id" bigint NOT NULL, + "submitted_at" timestamp(6) with time zone, + "survey_id" bigint, + "dept_name" character varying(255), + "feedback" character varying(255), + "respondent" character varying(255), + "survey_title" character varying(255) +); + + +-- +-- Name: logistics_survey_response_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_survey_response_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_survey_response_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_survey_response_id_seq" OWNED BY "public"."logistics_survey_response"."id"; + + +-- +-- Name: logistics_ticket; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."logistics_ticket" ( + "satisfaction" integer, + "accepted_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "finished_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "code" character varying(255), + "content" character varying(255), + "dept_name" character varying(255), + "eval_comment" character varying(255), + "handler" character varying(255), + "location" character varying(255), + "priority" character varying(255), + "resolution" character varying(255), + "service_type" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: logistics_ticket_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."logistics_ticket_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: logistics_ticket_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."logistics_ticket_id_seq" OWNED BY "public"."logistics_ticket"."id"; + + +-- +-- Name: market_budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."market_budget" ( + "amount" numeric(38,2), + "used_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: market_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."market_budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: market_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."market_budget_id_seq" OWNED BY "public"."market_budget"."id"; + + +-- +-- Name: market_campaign; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."market_campaign" ( + "budget" numeric(38,2), + "leads" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "campaign_type" character varying(255), + "hold_date" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "status" character varying(255), + "theme" character varying(255) +); + + +-- +-- Name: market_campaign_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."market_campaign_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: market_campaign_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."market_campaign_id_seq" OWNED BY "public"."market_campaign"."id"; + + +-- +-- Name: market_expense; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."market_expense" ( + "amount" numeric(38,2), + "over_budget" boolean NOT NULL, + "budget_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "invoice_file_id" bigint, + "opportunity_id" bigint, + "project_id" bigint, + "applicant" character varying(255), + "approve_comment" character varying(255), + "approver" character varying(255), + "category" character varying(255), + "expense_date" character varying(255), + "org_unit" character varying(255), + "status" character varying(255), + "title" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: market_expense_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."market_expense_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: market_expense_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."market_expense_id_seq" OWNED BY "public"."market_expense"."id"; + + +-- +-- Name: market_intel; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."market_intel" ( + "scale_amount" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "code" character varying(255), + "content" character varying(255), + "importance" character varying(255), + "intel_date" character varying(255), + "intel_type" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "region" character varying(255), + "source" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: market_intel_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."market_intel_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: market_intel_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."market_intel_id_seq" OWNED BY "public"."market_intel"."id"; + + +-- +-- Name: market_qualification; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."market_qualification" ( + "amount" numeric(38,2), + "usable" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "locked_by_bid_id" bigint, + "category" character varying(255), + "cert_no" character varying(255), + "code" character varying(255), + "expiry_date" character varying(255), + "field" character varying(255), + "grade" character varying(255), + "holder" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: market_qualification_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."market_qualification_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: market_qualification_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."market_qualification_id_seq" OWNED BY "public"."market_qualification"."id"; + + +-- +-- Name: meal_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."meal_order" ( + "portions" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "dept_name" character varying(255), + "diner" character varying(255), + "meal" character varying(255), + "meal_date" character varying(255), + "order_type" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: meal_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."meal_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: meal_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."meal_order_id_seq" OWNED BY "public"."meal_order"."id"; + + +-- +-- Name: measurement_payment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."measurement_payment" ( + "advance_deduct" numeric(38,2), + "approved_amount" numeric(38,2), + "certificate_amount" numeric(38,2), + "declared_amount" numeric(38,2), + "deduction" numeric(38,2), + "period_no" integer, + "retention" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "applicant" character varying(255), + "apply_date" character varying(255), + "approver" character varying(255), + "certificate_date" character varying(255), + "code" character varying(255), + "declared_qty" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "supervision_project_code" character varying(255) +); + + +-- +-- Name: measurement_payment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."measurement_payment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: measurement_payment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."measurement_payment_id_seq" OWNED BY "public"."measurement_payment"."id"; + + +-- +-- Name: media_brief_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."media_brief_report" ( + "negative_count" integer, + "neutral_count" integer, + "placement_count" integer, + "positive_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "total_read_count" bigint, + "total_repost_count" bigint, + "gen_mode" character varying(255), + "period" character varying(255), + "stat_from" character varying(255), + "stat_to" character varying(255), + "status" character varying(255), + "summary" "text", + "title" character varying(255) +); + + +-- +-- Name: media_brief_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."media_brief_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: media_brief_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."media_brief_report_id_seq" OWNED BY "public"."media_brief_report"."id"; + + +-- +-- Name: media_contact; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."media_contact" ( + "influence_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "audience" character varying(255), + "contact_email" character varying(255), + "contact_name" character varying(255), + "contact_phone" character varying(255), + "contact_title" character varying(255), + "cooperation_history" character varying(255), + "cooperation_level" character varying(255), + "last_touch_date" character varying(255), + "media_name" character varying(255), + "media_type" character varying(255), + "region" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: media_contact_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."media_contact_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: media_contact_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."media_contact_id_seq" OWNED BY "public"."media_contact"."id"; + + +-- +-- Name: media_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."media_record" ( + "cost" numeric(38,2), + "read_count" integer, + "repost_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "media_contact_id" bigint, + "end_date" character varying(255), + "interaction_date" character varying(255), + "interaction_type" character varying(255), + "media_name" character varying(255), + "next_touch_date" character varying(255), + "owner" character varying(255), + "placement" character varying(255), + "record_type" character varying(255), + "sentiment" character varying(255), + "status" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: media_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."media_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: media_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."media_record_id_seq" OWNED BY "public"."media_record"."id"; + + +-- +-- Name: meeting; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."meeting" ( + "end_time" timestamp(6) with time zone, + "id" bigint NOT NULL, + "room_id" bigint, + "start_time" timestamp(6) with time zone, + "cc_depts" character varying(1000), + "attendees" character varying(2000), + "agendas" character varying(4000), + "description" character varying(4000), + "host" character varying(255), + "organizer" character varying(255), + "status" character varying(255), + "subject" character varying(255), + "attachment_json" "text" +); + + +-- +-- Name: meeting_action_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."meeting_action_item" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "minute_id" bigint, + "updated_at" timestamp(6) with time zone, + "assignee" character varying(255), + "completed_date" character varying(255), + "content" character varying(255), + "due_date" character varying(255), + "minute_title" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: meeting_action_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."meeting_action_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: meeting_action_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."meeting_action_item_id_seq" OWNED BY "public"."meeting_action_item"."id"; + + +-- +-- Name: meeting_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."meeting_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: meeting_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."meeting_id_seq" OWNED BY "public"."meeting"."id"; + + +-- +-- Name: meeting_minute; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."meeting_minute" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "meeting_id" bigint, + "supervision_project_id" bigint, + "status" character varying(255), + "title" character varying(255), + "content" "text", + "decisions" "text" +); + + +-- +-- Name: meeting_minute_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."meeting_minute_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: meeting_minute_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."meeting_minute_id_seq" OWNED BY "public"."meeting_minute"."id"; + + +-- +-- Name: meeting_room; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."meeting_room" ( + "capacity" integer, + "id" bigint NOT NULL, + "location" character varying(255), + "name" character varying(255) NOT NULL +); + + +-- +-- Name: meeting_room_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."meeting_room_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: meeting_room_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."meeting_room_id_seq" OWNED BY "public"."meeting_room"."id"; + + +-- +-- Name: mfg_contract_change_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_contract_change_record" ( + "changed_at" timestamp(6) with time zone, + "contract_id" bigint, + "id" bigint NOT NULL, + "workflow_instance_id" bigint, + "after_val" character varying(255), + "approval_status" character varying(255), + "before_val" character varying(255), + "change_type" character varying(255), + "contract_no" character varying(255), + "operator" character varying(255), + "reason" character varying(255) +); + + +-- +-- Name: mfg_contract_change_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_contract_change_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_contract_change_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_contract_change_record_id_seq" OWNED BY "public"."mfg_contract_change_record"."id"; + + +-- +-- Name: mfg_cost_entry; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_cost_entry" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approval_status" character varying(255), + "approve_date" character varying(255), + "approver" character varying(255), + "cost_date" character varying(255), + "cost_type" character varying(255), + "delivery_no" character varying(255), + "description" character varying(255), + "entry_no" character varying(255), + "handler" character varying(255), + "outsource_no" character varying(255), + "project_code" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: mfg_cost_entry_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_cost_entry_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_cost_entry_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_cost_entry_id_seq" OWNED BY "public"."mfg_cost_entry"."id"; + + +-- +-- Name: mfg_delivery; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_delivery" ( + "acceptance_qualified" boolean, + "qty" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "acceptance_report" character varying(255), + "commission_data" character varying(255), + "customer" character varying(255), + "delivery_no" character varying(255), + "device_name" character varying(255), + "engineer" character varying(255), + "handover_date" character varying(255), + "logistics_no" character varying(255), + "owner" character varying(255), + "packing_no" character varying(255), + "plan_date" character varying(255), + "project_code" character varying(255), + "receive_date" character varying(255), + "received_by" character varying(255), + "remark" character varying(255), + "serial_no" character varying(255), + "ship_date" character varying(255), + "site_address" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: mfg_delivery_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_delivery_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_delivery_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_delivery_id_seq" OWNED BY "public"."mfg_delivery"."id"; + + +-- +-- Name: mfg_drawing; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_drawing" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "drawing_name" character varying(255), + "drawing_no" character varying(255), + "drawing_type" character varying(255), + "owner" character varying(255), + "product_name" character varying(255), + "project_code" character varying(255), + "release_date" character varying(255), + "remark" character varying(255), + "signed_at" character varying(255), + "signed_by" character varying(255), + "status" character varying(255), + "version" character varying(255), + "workshop" character varying(255) +); + + +-- +-- Name: mfg_drawing_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_drawing_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_drawing_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_drawing_id_seq" OWNED BY "public"."mfg_drawing"."id"; + + +-- +-- Name: mfg_eng_bom; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_eng_bom" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_bom_id" bigint, + "bom_no" character varying(255), + "bom_type" character varying(255), + "change_note" character varying(255), + "effective_date" character varying(255), + "owner" character varying(255), + "product_model" character varying(255), + "product_name" character varying(255), + "project_code" character varying(255), + "status" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: mfg_eng_bom_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_eng_bom_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_eng_bom_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_eng_bom_id_seq" OWNED BY "public"."mfg_eng_bom"."id"; + + +-- +-- Name: mfg_eng_bom_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_eng_bom_item" ( + "auto_configured" boolean, + "item_level" integer, + "qty_per" double precision, + "bom_id" bigint, + "id" bigint NOT NULL, + "mat_code" character varying(255), + "mat_kind" character varying(255), + "mat_name" character varying(255), + "parent_ref" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: mfg_eng_bom_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_eng_bom_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_eng_bom_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_eng_bom_item_id_seq" OWNED BY "public"."mfg_eng_bom_item"."id"; + + +-- +-- Name: mfg_env_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_env_contract" ( + "amount" numeric(38,2), + "paid_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "sales_order_id" bigint, + "contract_name" character varying(255), + "contract_no" character varying(255), + "customer" character varying(255), + "delivery_nodes" character varying(255), + "owner" character varying(255), + "payment_terms" character varying(255), + "plan_finish_date" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "sign_date" character varying(255), + "status" character varying(255), + "supply_scope" character varying(255), + "tech_agreement" character varying(255), + "warranty_terms" character varying(255) +); + + +-- +-- Name: mfg_env_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_env_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_env_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_env_contract_id_seq" OWNED BY "public"."mfg_env_contract"."id"; + + +-- +-- Name: mfg_env_supplier_profile; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_env_supplier_profile" ( + "delivery_count" integer, + "delivery_score" integer, + "key_part_supplier" boolean, + "price_score" integer, + "quality_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "address" character varying(255), + "contact_person" character varying(255), + "contact_phone" character varying(255), + "credit_code" character varying(255), + "env_cert_expiry" character varying(255), + "env_cert_no" character varying(255), + "env_cert_type" character varying(255), + "evaluator" character varying(255), + "iso_cert_body" character varying(255), + "iso_cert_no" character varying(255), + "iso_cert_type" character varying(255), + "iso_expiry" character varying(255), + "key_parts" character varying(255), + "last_eval_date" character varying(255), + "overall_grade" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "supplier_code" character varying(255), + "supplier_name" character varying(255) NOT NULL, + "supplier_type" character varying(255), + "performance_json" "text" +); + + +-- +-- Name: mfg_env_supplier_profile_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_env_supplier_profile_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_env_supplier_profile_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_env_supplier_profile_id_seq" OWNED BY "public"."mfg_env_supplier_profile"."id"; + + +-- +-- Name: mfg_equipment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_equipment" ( + "last_maint_hours" double precision NOT NULL, + "maint_cycle_hours" double precision NOT NULL, + "run_hours" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "commission_date" character varying(255), + "equip_type" character varying(255), + "last_maint_date" character varying(255), + "model" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "workshop" character varying(255) +); + + +-- +-- Name: mfg_equipment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_equipment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_equipment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_equipment_id_seq" OWNED BY "public"."mfg_equipment"."id"; + + +-- +-- Name: mfg_feedstock_batch; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_feedstock_batch" ( + "cn_ratio" double precision, + "deduct_weight" numeric(38,2), + "gross_weight" numeric(38,2), + "heavy_metal_fail" boolean, + "impurity_pct" double precision, + "moisture_pct" double precision, + "organic_pct" double precision, + "received_qty" numeric(38,2), + "settle_amount" numeric(38,2), + "settle_weight" numeric(38,2), + "std_moisture_pct" double precision, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "arrival_date" character varying(255), + "batch_no" character varying(255), + "category" character varying(255), + "inspector" character varying(255), + "material_name" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "source_origin" character varying(255), + "status" character varying(255), + "supplier" character varying(255) +); + + +-- +-- Name: mfg_feedstock_batch_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_feedstock_batch_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_feedstock_batch_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_feedstock_batch_id_seq" OWNED BY "public"."mfg_feedstock_batch"."id"; + + +-- +-- Name: mfg_ferment_batch; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_ferment_batch" ( + "batch_size" double precision NOT NULL, + "germ_index" double precision, + "has_alert" boolean, + "target_germ_index" double precision, + "target_moisture" double precision, + "target_temp" double precision, + "turn_freq_days" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "recipe_id" bigint, + "actual_end_date" character varying(255), + "batch_no" character varying(255), + "expect_end_date" character varying(255), + "ferment_mode" character varying(255), + "maturity_note" character varying(255), + "owner" character varying(255), + "product_name" character varying(255), + "recipe_code" character varying(255), + "remark" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "trough" character varying(255) +); + + +-- +-- Name: mfg_ferment_batch_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_ferment_batch_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_ferment_batch_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_ferment_batch_id_seq" OWNED BY "public"."mfg_ferment_batch"."id"; + + +-- +-- Name: mfg_ferment_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_ferment_log" ( + "alert_flag" boolean, + "ambient_temp" double precision, + "from_iot" boolean, + "moisture_pct" double precision, + "oxygen_pct" double precision, + "ph" double precision, + "temperature" double precision, + "turn_times" integer, + "batch_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "alert_text" character varying(255), + "batch_no" character varying(255), + "log_date" character varying(255), + "recorder" character varying(255), + "shift" character varying(255) +); + + +-- +-- Name: mfg_ferment_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_ferment_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_ferment_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_ferment_log_id_seq" OWNED BY "public"."mfg_ferment_log"."id"; + + +-- +-- Name: mfg_fert_recipe; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_fert_recipe" ( + "moisture_pct" double precision, + "organic_pct" double precision, + "ph_target" double precision, + "total_nutrient_pct" double precision, + "viable_bacteria" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approver" character varying(255), + "code" character varying(255), + "effective_date" character varying(255), + "owner" character varying(255), + "process_route" character varying(255), + "product_name" character varying(255), + "product_type" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "strain_desc" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: mfg_fert_recipe_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_fert_recipe_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_fert_recipe_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_fert_recipe_id_seq" OWNED BY "public"."mfg_fert_recipe"."id"; + + +-- +-- Name: mfg_fqc_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_fqc_report" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "inspection_id" bigint, + "appearance_result" character varying(255), + "cert_issuer" character varying(255), + "cert_no_fqc" character varying(255), + "customer" character varying(255), + "device_name" character varying(255), + "device_spec" character varying(255), + "electric_result" character varying(255), + "inspect_date" character varying(255), + "inspect_no" character varying(255), + "inspector" character varying(255), + "mechanical_result" character varying(255), + "nc_items" character varying(255), + "overall_judge" character varying(255), + "performance_summary" character varying(255), + "produce_date" character varying(255), + "project_code" character varying(255), + "publish_date" character varying(255), + "remark" character varying(255), + "report_no" character varying(255), + "report_status" character varying(255), + "review_date" character varying(255), + "reviewed_by" character varying(255), + "serial_no_fqc" character varying(255), + "tech_req_comparison" character varying(255) +); + + +-- +-- Name: mfg_fqc_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_fqc_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_fqc_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_fqc_report_id_seq" OWNED BY "public"."mfg_fqc_report"."id"; + + +-- +-- Name: mfg_inventory_lot; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_inventory_lot" ( + "hazardous" boolean, + "quantity" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_no" character varying(255), + "hazardous_class" character varying(255), + "inbound_date" character varying(255), + "last_move_date" character varying(255), + "location" character varying(255), + "material_name" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "serial_no" character varying(255), + "source_doc" character varying(255), + "spec" character varying(255), + "unit" character varying(255), + "warehouse_type" character varying(255) +); + + +-- +-- Name: mfg_inventory_lot_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_inventory_lot_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_inventory_lot_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_inventory_lot_id_seq" OWNED BY "public"."mfg_inventory_lot"."id"; + + +-- +-- Name: mfg_maint_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_maint_order" ( + "cost" numeric(38,2), + "downtime_hours" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "equipment_id" bigint, + "id" bigint NOT NULL, + "equipment_name" character varying(255), + "fault" character varying(255), + "finish_date" character varying(255), + "maint_type" character varying(255), + "order_no" character varying(255), + "parts_replaced" character varying(255), + "remark" character varying(255), + "report_date" character varying(255), + "reporter" character varying(255), + "status" character varying(255), + "technician" character varying(255) +); + + +-- +-- Name: mfg_maint_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_maint_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_maint_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_maint_order_id_seq" OWNED BY "public"."mfg_maint_order"."id"; + + +-- +-- Name: mfg_material_issue; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_material_issue" ( + "amount" numeric(38,2), + "qty" double precision NOT NULL, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "work_order_id" bigint, + "issue_date" character varying(255), + "issue_no" character varying(255), + "material_name" character varying(255), + "operator" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "unit" character varying(255), + "work_order_no" character varying(255) +); + + +-- +-- Name: mfg_material_issue_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_material_issue_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_material_issue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_material_issue_id_seq" OWNED BY "public"."mfg_material_issue"."id"; + + +-- +-- Name: mfg_mps_node; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_mps_node" ( + "plan_capacity" integer, + "seq" integer, + "used_capacity" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_end" character varying(255), + "actual_start" character varying(255), + "plan_end" character varying(255), + "plan_start" character varying(255), + "process_name" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "responsible" character varying(255), + "status" character varying(255), + "workshop" character varying(255) +); + + +-- +-- Name: mfg_mps_node_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_mps_node_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_mps_node_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_mps_node_id_seq" OWNED BY "public"."mfg_mps_node"."id"; + + +-- +-- Name: mfg_outsource; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_outsource" ( + "amount" numeric(38,2), + "qty" double precision NOT NULL, + "qualified" boolean, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_return_date" character varying(255), + "inspect_result" character varying(255), + "nc_disposition" character varying(255), + "outsource_no" character varying(255), + "owner" character varying(255), + "part_name" character varying(255), + "process_req" character varying(255), + "process_type" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "require_return_date" character varying(255), + "sent_date" character varying(255), + "status" character varying(255), + "unit" character varying(255), + "vendor" character varying(255), + "work_order_no" character varying(255) +); + + +-- +-- Name: mfg_outsource_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_outsource_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_outsource_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_outsource_id_seq" OWNED BY "public"."mfg_outsource"."id"; + + +-- +-- Name: mfg_production_anomaly; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_production_anomaly" ( + "closed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reported_at" timestamp(6) with time zone, + "resolved_at" timestamp(6) with time zone, + "started_at" timestamp(6) with time zone, + "anomaly_no" character varying(255), + "anomaly_type" character varying(255), + "description" character varying(255), + "photos" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "reporter" character varying(255), + "resolution" character varying(255), + "responsible" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "work_order_no" character varying(255), + "workshop" character varying(255) +); + + +-- +-- Name: mfg_production_anomaly_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_production_anomaly_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_production_anomaly_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_production_anomaly_id_seq" OWNED BY "public"."mfg_production_anomaly"."id"; + + +-- +-- Name: mfg_production_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_production_report" ( + "labor_cost" numeric(38,2), + "labor_hours" double precision NOT NULL, + "labor_rate" numeric(38,2), + "qty" double precision NOT NULL, + "qualified_qty" double precision NOT NULL, + "scrap_qty" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "work_order_id" bigint, + "process" character varying(255), + "project_name" character varying(255), + "report_date" character varying(255), + "report_no" character varying(255), + "reporter" character varying(255), + "status" character varying(255), + "work_order_no" character varying(255), + "workshop" character varying(255) +); + + +-- +-- Name: mfg_production_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_production_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_production_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_production_report_id_seq" OWNED BY "public"."mfg_production_report"."id"; + + +-- +-- Name: mfg_purchase_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_purchase_order" ( + "amount" numeric(38,2), + "arrived_qty" double precision NOT NULL, + "qty" double precision NOT NULL, + "qualified_supplier" boolean, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approve_comment" character varying(255), + "arrival_date" character varying(255), + "iqc_no" character varying(255), + "material_name" character varying(255), + "owner" character varying(255), + "po_no" character varying(255), + "po_type" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "require_date" character varying(255), + "source" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "unit" character varying(255), + "work_order_no" character varying(255) +); + + +-- +-- Name: mfg_purchase_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_purchase_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_purchase_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_purchase_order_id_seq" OWNED BY "public"."mfg_purchase_order"."id"; + + +-- +-- Name: mfg_qc_inspection; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_qc_inspection" ( + "qty" double precision NOT NULL, + "qualified_qty" double precision NOT NULL, + "reject_qty" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "lab_task_id" bigint, + "batch_no" character varying(255), + "disposition" character varying(255), + "inspect_data" character varying(255), + "inspect_date" character varying(255), + "inspect_no" character varying(255), + "inspect_type" character varying(255), + "inspector" character varying(255), + "judge_result" character varying(255), + "lab_task_no" character varying(255), + "project_name" character varying(255), + "remark" character varying(255), + "responsible_dept" character varying(255), + "serial_no" character varying(255), + "standard_ref" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "target_name" character varying(255), + "work_order_no" character varying(255) +); + + +-- +-- Name: mfg_qc_inspection_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_qc_inspection_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_qc_inspection_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_qc_inspection_id_seq" OWNED BY "public"."mfg_qc_inspection"."id"; + + +-- +-- Name: mfg_quote; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_quote" ( + "quote_amount" numeric(38,2), + "ref_cost" numeric(38,2), + "ref_margin" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "sales_order_id" bigint, + "capacity" character varying(255), + "customer" character varying(255), + "emission_std" character varying(255), + "equip_type" character varying(255), + "owner" character varying(255), + "process_route" character varying(255), + "quote_date" character varying(255), + "quote_no" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "valid_until" character varying(255) +); + + +-- +-- Name: mfg_quote_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_quote_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_quote_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_quote_id_seq" OWNED BY "public"."mfg_quote"."id"; + + +-- +-- Name: mfg_recipe_ingredient; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_recipe_ingredient" ( + "inoculant" boolean NOT NULL, + "ratio_pct" double precision NOT NULL, + "id" bigint NOT NULL, + "recipe_id" bigint, + "category" character varying(255), + "material_name" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: mfg_recipe_ingredient_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_recipe_ingredient_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_recipe_ingredient_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_recipe_ingredient_id_seq" OWNED BY "public"."mfg_recipe_ingredient"."id"; + + +-- +-- Name: mfg_sales_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_sales_order" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "quote_id" bigint, + "company_subject" character varying(255), + "contract_no" character varying(255), + "customer" character varying(255), + "delivery_date" character varying(255), + "delivery_site" character varying(255), + "equip_type" character varying(255), + "equipment_list" character varying(255), + "order_no" character varying(255), + "owner" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "quote_no" character varying(255), + "remark" character varying(255), + "sales_stage" character varying(255), + "site_condition" character varying(255), + "tech_spec" character varying(255) +); + + +-- +-- Name: mfg_sales_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_sales_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_sales_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_sales_order_id_seq" OWNED BY "public"."mfg_sales_order"."id"; + + +-- +-- Name: mfg_service_ticket; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_service_ticket" ( + "customer_signed" boolean, + "parts_cost" numeric(38,2), + "satisfaction" integer, + "under_warranty" boolean, + "closed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reported_at" timestamp(6) with time zone, + "closed_date" character varying(255), + "customer" character varying(255), + "device_name" character varying(255), + "engineer" character varying(255), + "fault_desc" character varying(255), + "location" character varying(255), + "priority" character varying(255), + "repair_report" character varying(255), + "reported_date" character varying(255), + "serial_no" character varying(255), + "service_type" character varying(255), + "status" character varying(255), + "ticket_no" character varying(255) +); + + +-- +-- Name: mfg_service_ticket_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_service_ticket_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_service_ticket_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_service_ticket_id_seq" OWNED BY "public"."mfg_service_ticket"."id"; + + +-- +-- Name: mfg_stocktake; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_stocktake" ( + "shortage_qty" double precision NOT NULL, + "surplus_qty" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "approve_comment" character varying(255), + "approve_date" character varying(255), + "approver" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "take_date" character varying(255), + "take_no" character varying(255), + "take_type" character varying(255), + "warehouse" character varying(255) +); + + +-- +-- Name: mfg_stocktake_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_stocktake_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_stocktake_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_stocktake_id_seq" OWNED BY "public"."mfg_stocktake"."id"; + + +-- +-- Name: mfg_stocktake_line; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_stocktake_line" ( + "actual_qty" double precision NOT NULL, + "book_qty" double precision NOT NULL, + "diff_qty" double precision NOT NULL, + "flagged" boolean NOT NULL, + "variance_pct" double precision NOT NULL, + "id" bigint NOT NULL, + "inventory_item_id" bigint, + "stocktake_id" bigint, + "batch_no" character varying(255), + "diff_reason" character varying(255), + "location" character varying(255), + "material_name" character varying(255), + "result" character varying(255), + "serial_no" character varying(255) +); + + +-- +-- Name: mfg_stocktake_line_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_stocktake_line_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_stocktake_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_stocktake_line_id_seq" OWNED BY "public"."mfg_stocktake_line"."id"; + + +-- +-- Name: mfg_warranty_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_warranty_contract" ( + "amount" numeric(38,2), + "warranty_months" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "contract_no" character varying(255), + "contract_type" character varying(255), + "customer" character varying(255), + "device_name" character varying(255), + "end_date" character varying(255), + "last_inspect_date" character varying(255), + "next_inspect_date" character varying(255), + "owner" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "renewed_contract_no" character varying(255), + "serial_no" character varying(255), + "service_scope" character varying(255), + "site_address" character varying(255), + "start_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: mfg_warranty_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_warranty_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_warranty_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_warranty_contract_id_seq" OWNED BY "public"."mfg_warranty_contract"."id"; + + +-- +-- Name: mfg_wip_position; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mfg_wip_position" ( + "qty_balance" double precision, + "qty_in" double precision, + "qty_out" double precision, + "qty_scrap" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "work_order_id" bigint, + "location_type" character varying(255), + "mat_code" character varying(255), + "mat_name" character varying(255), + "move_date" character varying(255), + "operator" character varying(255), + "outsource_vendor" character varying(255), + "position_type" character varying(255), + "project_code" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "unit" character varying(255), + "work_order_no" character varying(255), + "workstation" character varying(255) +); + + +-- +-- Name: mfg_wip_position_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mfg_wip_position_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mfg_wip_position_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mfg_wip_position_id_seq" OWNED BY "public"."mfg_wip_position"."id"; + + +-- +-- Name: mobile_checkin; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."mobile_checkin" ( + "lat" double precision, + "lng" double precision, + "checkin_time" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "owner_id" bigint, + "address" character varying(255), + "checkin_type" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "target" character varying(255) +); + + +-- +-- Name: mobile_checkin_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."mobile_checkin_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: mobile_checkin_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."mobile_checkin_id_seq" OWNED BY "public"."mobile_checkin"."id"; + + +-- +-- Name: multi_payment_batch; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."multi_payment_batch" ( + "total_request_amount" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "applicant" character varying(255), + "approval_comment" character varying(255), + "approver" character varying(255), + "batch_code" character varying(255), + "contract_name" character varying(255), + "note" character varying(255), + "pay_date" character varying(255), + "payee_name" character varying(255), + "payer_name" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: multi_payment_batch_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."multi_payment_batch_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: multi_payment_batch_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."multi_payment_batch_id_seq" OWNED BY "public"."multi_payment_batch"."id"; + + +-- +-- Name: multi_payment_batch_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."multi_payment_batch_item" ( + "invoiced_amount" numeric(38,2), + "paid_amount" numeric(38,2), + "request_amount" numeric(38,2), + "batch_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_payment_id" bigint, + "note" character varying(255), + "source_desc" character varying(255), + "source_type" character varying(255) +); + + +-- +-- Name: multi_payment_batch_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."multi_payment_batch_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: multi_payment_batch_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."multi_payment_batch_item_id_seq" OWNED BY "public"."multi_payment_batch_item"."id"; + + +-- +-- Name: net_scan_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."net_scan_log" ( + "shared" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "task_id" bigint, + "link" character varying(255), + "scan_date" character varying(255), + "scan_type" character varying(255), + "scanner" character varying(255), + "task_name" character varying(255), + "title" character varying(255), + "content" "text" +); + + +-- +-- Name: net_scan_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."net_scan_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: net_scan_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."net_scan_log_id_seq" OWNED BY "public"."net_scan_log"."id"; + + +-- +-- Name: net_scan_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."net_scan_task" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "last_scan_date" character varying(255), + "name" character varying(255), + "next_due_date" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "scan_type" character varying(255), + "source" character varying(255), + "status" character varying(255), + "weekdays" character varying(255) +); + + +-- +-- Name: net_scan_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."net_scan_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: net_scan_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."net_scan_task_id_seq" OWNED BY "public"."net_scan_task"."id"; + + +-- +-- Name: oa_message; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."oa_message" ( + "read" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "recipient_id" bigint, + "source_id" bigint, + "recipient" character varying(255), + "source_type" character varying(255), + "title" character varying(255), + "type" character varying(255), + "body" "text" +); + + +-- +-- Name: oa_message_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."oa_message_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: oa_message_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."oa_message_id_seq" OWNED BY "public"."oa_message"."id"; + + +-- +-- Name: oa_setting; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."oa_setting" ( + "id" bigint NOT NULL, + "setting_key" character varying(255) NOT NULL, + "value_json" "text" +); + + +-- +-- Name: oa_setting_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."oa_setting_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: oa_setting_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."oa_setting_id_seq" OWNED BY "public"."oa_setting"."id"; + + +-- +-- Name: occ_hazard_factor; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."occ_hazard_factor" ( + "capa_generated" boolean, + "last_measured_value" double precision, + "oel" double precision, + "capa_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "dept" character varying(255), + "factor_name" character varying(255), + "factor_type" character varying(255), + "last_monitor_date" character varying(255), + "last_monitor_result" character varying(255), + "monitor_frequency" character varying(255), + "next_monitor_date" character varying(255), + "oel_standard" character varying(255), + "oel_unit" character varying(255), + "post" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: occ_hazard_factor_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."occ_hazard_factor_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: occ_hazard_factor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."occ_hazard_factor_id_seq" OWNED BY "public"."occ_hazard_factor"."id"; + + +-- +-- Name: occ_workplace_monitor; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."occ_workplace_monitor" ( + "capa_generated" boolean, + "excess_ratio" double precision, + "limit_value" double precision, + "measured_value" double precision, + "capa_id" bigint, + "created_at" timestamp(6) with time zone, + "factor_id" bigint, + "id" bigint NOT NULL, + "code" character varying(255), + "dept" character varying(255), + "factor_name" character varying(255), + "institution" character varying(255), + "location" character varying(255), + "method" character varying(255), + "monitor" character varying(255), + "monitor_date" character varying(255), + "note" character varying(255), + "param_type" character varying(255), + "post" character varying(255), + "report_batch" character varying(255), + "result" character varying(255), + "time_slot" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: occ_workplace_monitor_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."occ_workplace_monitor_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: occ_workplace_monitor_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."occ_workplace_monitor_id_seq" OWNED BY "public"."occ_workplace_monitor"."id"; + + +-- +-- Name: operation_audit_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."operation_audit_log" ( + "status_code" integer, + "id" bigint NOT NULL, + "occurred_at" timestamp(6) with time zone, + "operator_id" bigint, + "hash" character varying(64), + "prev_hash" character varying(64), + "path" character varying(512), + "canonical" character varying(1024), + "client_ip" character varying(255), + "method" character varying(255), + "operator" character varying(255), + "operator_role" character varying(255), + "resource_id" character varying(255), + "resource_type" character varying(255) +); + + +-- +-- Name: operation_audit_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."operation_audit_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: operation_audit_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."operation_audit_log_id_seq" OWNED BY "public"."operation_audit_log"."id"; + + +-- +-- Name: opportunity; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."opportunity" ( + "amount" numeric(38,2), + "probability" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "customer_id" bigint, + "id" bigint NOT NULL, + "customer_name" character varying(255), + "expected_date" character varying(255), + "name" character varying(255), + "org_unit" character varying(255), + "owner" character varying(255), + "project_type" character varying(255), + "source" character varying(255), + "stage" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: opportunity_followup; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."opportunity_followup" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "opportunity_id" bigint, + "content" character varying(255), + "follow_date" character varying(255), + "next_plan" character varying(255), + "operator" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: opportunity_followup_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."opportunity_followup_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: opportunity_followup_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."opportunity_followup_id_seq" OWNED BY "public"."opportunity_followup"."id"; + + +-- +-- Name: opportunity_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."opportunity_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: opportunity_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."opportunity_id_seq" OWNED BY "public"."opportunity"."id"; + + +-- +-- Name: ops_emergency_supply; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ops_emergency_supply" ( + "current_stock" double precision, + "quantity" double precision, + "safety_stock" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "expiry_date" character varying(255), + "op_date" character varying(255), + "op_type" character varying(255), + "operator" character varying(255), + "plant" character varying(255), + "purpose" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "storage_location" character varying(255), + "supply_name" character varying(255), + "supply_type" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: ops_emergency_supply_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ops_emergency_supply_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ops_emergency_supply_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ops_emergency_supply_id_seq" OWNED BY "public"."ops_emergency_supply"."id"; + + +-- +-- Name: ops_haz_chem_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ops_haz_chem_request" ( + "dispose_qty" double precision, + "msds_confirmed" boolean, + "qty" double precision, + "return_qty" double precision, + "used_qty" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "applicant" character varying(255), + "approver1" character varying(255), + "approver2" character varying(255), + "cas_no" character varying(255), + "chem_name" character varying(255), + "disposal_method" character varying(255), + "issued_date" character varying(255), + "plant" character varying(255), + "purpose" character varying(255), + "remark" character varying(255), + "request_no" character varying(255), + "status" character varying(255), + "storage_location" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: ops_haz_chem_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ops_haz_chem_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ops_haz_chem_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ops_haz_chem_request_id_seq" OWNED BY "public"."ops_haz_chem_request"."id"; + + +-- +-- Name: ops_xdept_push; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ops_xdept_push" ( + "ammonia_reduction_kg" numeric(38,2), + "cod_reduction_kg" numeric(38,2), + "compliance_rate" double precision, + "total_cost" numeric(38,2), + "tp_reduction_kg" numeric(38,2), + "treated_volume_ton" double precision, + "confirmed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "pushed_at" timestamp(6) with time zone, + "data_summary" character varying(255), + "data_type" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "push_code" character varying(255), + "push_status" character varying(255), + "remark" character varying(255), + "target_dept" character varying(255) +); + + +-- +-- Name: ops_xdept_push_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ops_xdept_push_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ops_xdept_push_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ops_xdept_push_id_seq" OWNED BY "public"."ops_xdept_push"."id"; + + +-- +-- Name: org_branch; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."org_branch" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "address" character varying(255), + "code" character varying(255), + "manager" character varying(255), + "name" character varying(255), + "parent_code" character varying(255), + "phone" character varying(255), + "region" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: org_branch_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."org_branch_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: org_branch_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."org_branch_id_seq" OWNED BY "public"."org_branch"."id"; + + +-- +-- Name: patent; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."patent" ( + "annual_fee" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "rd_project_id" bigint, + "patent_remark" character varying(1000), + "agency_name" character varying(255), + "applicant" character varying(255), + "apply_date" character varying(255), + "apply_no" character varying(255), + "fee_due_date" character varying(255), + "grant_date" character varying(255), + "inventors" character varying(255), + "ipc_class" character varying(255), + "name" character varying(255), + "patent_no" character varying(255), + "status" character varying(255), + "tech_domain" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: patent_disclosure; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."patent_disclosure" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "patent_id" bigint, + "updated_at" timestamp(6) with time zone, + "work_method_id" bigint, + "disclosure_reject_reason" character varying(1000), + "disclosure_inventive_comment" character varying(2000), + "disclosure_novelty_comment" character varying(2000), + "disclosure_tech_effect" character varying(2000), + "disclosure_tech_problem" character varying(4000), + "disclosure_tech_solution" character varying(6000), + "assessed_date" character varying(255), + "assessor" character varying(255), + "decision_status" character varying(255), + "department" character varying(255), + "disclosure_no" character varying(255), + "innovation_type" character varying(255), + "inventors" character varying(255), + "ipc_class" character varying(255), + "submitted_by" character varying(255), + "submitted_date" character varying(255), + "tech_domain" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: patent_disclosure_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."patent_disclosure_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: patent_disclosure_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."patent_disclosure_id_seq" OWNED BY "public"."patent_disclosure"."id"; + + +-- +-- Name: patent_fee; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."patent_fee" ( + "amount" numeric(38,2), + "year_no" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_budget_id" bigint, + "patent_id" bigint, + "updated_at" timestamp(6) with time zone, + "pf_remark" character varying(500), + "fee_type" character varying(255), + "occur_date" character varying(255), + "patent_name" character varying(255), + "patent_no" character varying(255), + "payee" character varying(255), + "registrant" character varying(255), + "source" character varying(255), + "status" character varying(255), + "voucher_no" character varying(255) +); + + +-- +-- Name: patent_fee_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."patent_fee_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: patent_fee_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."patent_fee_id_seq" OWNED BY "public"."patent_fee"."id"; + + +-- +-- Name: patent_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."patent_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: patent_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."patent_id_seq" OWNED BY "public"."patent"."id"; + + +-- +-- Name: patent_mid_file; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."patent_mid_file" ( + "handled" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "patent_id" bigint, + "pmf_summary" character varying(2000), + "direction" character varying(255), + "file_date" character varying(255), + "file_type" character varying(255), + "file_url" character varying(255), + "handler" character varying(255), + "official_no" character varying(255), + "reply_deadline" character varying(255) +); + + +-- +-- Name: patent_mid_file_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."patent_mid_file_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: patent_mid_file_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."patent_mid_file_id_seq" OWNED BY "public"."patent_mid_file"."id"; + + +-- +-- Name: payment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."payment" ( + "amount" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "invoice_id" bigint, + "project_id" bigint, + "applicant" character varying(255), + "bank_account_no" character varying(255), + "code" character varying(255), + "pay_date" character varying(255), + "pay_type" character varying(255), + "payee_name" character varying(255), + "status" character varying(255), + "subject" character varying(255) +); + + +-- +-- Name: payment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."payment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: payment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."payment_id_seq" OWNED BY "public"."payment"."id"; + + +-- +-- Name: personnel_cert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."personnel_cert" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cert_no" character varying(255), + "cert_type" character varying(255), + "dept" character varying(255), + "expire_date" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "person_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: personnel_cert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."personnel_cert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: personnel_cert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."personnel_cert_id_seq" OWNED BY "public"."personnel_cert"."id"; + + +-- +-- Name: pmt_bank_evaluation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_bank_evaluation" ( + "score_approval_speed" integer, + "score_cooperation" integer, + "score_rate_competitiveness" integer, + "score_service_quality" integer, + "total_score" integer, + "bank_rel_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "eval_date" character varying(255), + "eval_period" character varying(255), + "evaluator" character varying(255), + "grade" character varying(255), + "institution_name" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: pmt_bank_evaluation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_bank_evaluation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_bank_evaluation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_bank_evaluation_id_seq" OWNED BY "public"."pmt_bank_evaluation"."id"; + + +-- +-- Name: pmt_bank_relation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_bank_relation" ( + "avg_approval_days" integer, + "total_credit_limit" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "account_manager" character varying(255), + "branch" character varying(255), + "cooperation_start_date" character varying(255), + "created_by" character varying(255), + "institution_name" character varying(255), + "institution_type" character varying(255), + "manager_phone" character varying(255), + "rating" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: pmt_bank_relation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_bank_relation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_bank_relation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_bank_relation_id_seq" OWNED BY "public"."pmt_bank_relation"."id"; + + +-- +-- Name: pmt_collection_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_collection_log" ( + "ar_amount" numeric(38,2), + "dunning_letter_sent" boolean, + "overdue_days" integer, + "ar_ap_item_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "action_type" character varying(255), + "collector_name" character varying(255), + "contact_person" character varying(255), + "due_date" character varying(255), + "dunning_letter_date" character varying(255), + "party_name" character varying(255), + "promised_pay_date" character varying(255), + "result" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: pmt_collection_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_collection_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_collection_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_collection_log_id_seq" OWNED BY "public"."pmt_collection_log"."id"; + + +-- +-- Name: pmt_contract_attachment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_contract_attachment" ( + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "file_size" bigint, + "id" bigint NOT NULL, + "uploaded_at" timestamp(6) with time zone, + "attach_type" character varying(255), + "contract_no" character varying(255), + "expire_date" character varying(255), + "file_name" character varying(255), + "file_version" character varying(255), + "remark" character varying(255), + "stored_url" character varying(255), + "uploader" character varying(255) +); + + +-- +-- Name: pmt_contract_attachment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_contract_attachment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_contract_attachment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_contract_attachment_id_seq" OWNED BY "public"."pmt_contract_attachment"."id"; + + +-- +-- Name: pmt_contract_fee_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_contract_fee_item" ( + "fee_amount" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "contract_no" character varying(255), + "created_by" character varying(255), + "fee_date" character varying(255), + "fee_label" character varying(255), + "fee_type" character varying(255), + "pay_status" character varying(255), + "payee" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: pmt_contract_fee_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_contract_fee_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_contract_fee_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_contract_fee_item_id_seq" OWNED BY "public"."pmt_contract_fee_item"."id"; + + +-- +-- Name: pmt_cost_alloc_rule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_cost_alloc_rule" ( + "total_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "alloc_basis_json" character varying(255), + "alloc_method" character varying(255), + "cost_item" character varying(255), + "creator" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: pmt_cost_alloc_rule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_cost_alloc_rule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_cost_alloc_rule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_cost_alloc_rule_id_seq" OWNED BY "public"."pmt_cost_alloc_rule"."id"; + + +-- +-- Name: pmt_financing_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_financing_contract" ( + "contract_amount" numeric(38,2), + "contract_fee" numeric(38,2), + "contract_rate" numeric(38,2), + "drawn_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "financing_id" bigint, + "id" bigint NOT NULL, + "contract_no" character varying(255), + "financing_code" character varying(255), + "first_drawdown_date" character varying(255), + "guarantee_desc" character varying(255), + "guarantee_type" character varying(255), + "lender" character varying(255), + "maturity_date" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "repay_method" character varying(255), + "sign_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: pmt_financing_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_financing_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_financing_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_financing_contract_id_seq" OWNED BY "public"."pmt_financing_contract"."id"; + + +-- +-- Name: pmt_inbound_receipt; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_inbound_receipt" ( + "amount" numeric(38,2), + "ar_ap_item_id" bigint, + "bank_account_id" bigint, + "claimed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "bank_txn_no" character varying(255), + "claimed_by" character varying(255), + "company_subject" character varying(255), + "contract_ref" character varying(255), + "created_by" character varying(255), + "invoice_ref" character varying(255), + "payer_account_no" character varying(255), + "payer_name" character varying(255), + "receipt_date" character varying(255), + "status" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: pmt_inbound_receipt_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_inbound_receipt_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_inbound_receipt_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_inbound_receipt_id_seq" OWNED BY "public"."pmt_inbound_receipt"."id"; + + +-- +-- Name: pmt_internal_trans; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_internal_trans" ( + "amount" numeric(38,2), + "interest_amount" numeric(38,2), + "interest_rate" numeric(38,2), + "ap_item_id" bigint, + "ar_item_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "payer_confirmed_at" timestamp(6) with time zone, + "receiver_confirmed_at" timestamp(6) with time zone, + "biz_date" character varying(255), + "code" character varying(255), + "created_by" character varying(255), + "difference_note" character varying(255), + "interest_from" character varying(255), + "interest_to" character varying(255), + "payer_confirmed_by" character varying(255), + "payer_subject" character varying(255), + "receiver_confirmed_by" character varying(255), + "receiver_subject" character varying(255), + "recon_period" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "trans_type" character varying(255) +); + + +-- +-- Name: pmt_internal_trans_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_internal_trans_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_internal_trans_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_internal_trans_id_seq" OWNED BY "public"."pmt_internal_trans"."id"; + + +-- +-- Name: pmt_loan_scheme; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_loan_scheme" ( + "amount" numeric(38,2), + "annual_rate" numeric(38,2), + "effective_cost_rate" numeric(38,2), + "guarantee_rate" numeric(38,2), + "handling_fee" numeric(38,2), + "rank" integer, + "recommended" boolean, + "term_months" integer, + "created_at" timestamp(6) with time zone, + "financing_id" bigint, + "id" bigint NOT NULL, + "drawdown_conditions" character varying(255), + "financing_code" character varying(255), + "guarantee_type" character varying(255), + "institution" character varying(255), + "loan_type" character varying(255), + "owner" character varying(255), + "remark" character varying(255), + "repay_method" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: pmt_loan_scheme_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_loan_scheme_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_loan_scheme_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_loan_scheme_id_seq" OWNED BY "public"."pmt_loan_scheme"."id"; + + +-- +-- Name: pmt_payee_blacklist; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."pmt_payee_blacklist" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "effect_date" character varying(255), + "expire_date" character varying(255), + "list_type" character varying(255), + "match_field" character varying(255), + "match_value" character varying(255), + "operator" character varying(255), + "reason" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: pmt_payee_blacklist_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."pmt_payee_blacklist_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: pmt_payee_blacklist_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."pmt_payee_blacklist_id_seq" OWNED BY "public"."pmt_payee_blacklist"."id"; + + +-- +-- Name: policy; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."policy" ( + "fund_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "conditions" character varying(2000), + "authority" character varying(255), + "category" character varying(255), + "deadline" character varying(255), + "status" character varying(255), + "tags" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: policy_application; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."policy_application" ( + "applied_amount" numeric(38,2), + "granted_amount" numeric(38,2), + "applied_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "policy_id" bigint, + "timeline_json" character varying(4000), + "applicant" character varying(255), + "dept" character varying(255), + "policy_title" character varying(255), + "project_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: policy_application_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."policy_application_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: policy_application_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."policy_application_id_seq" OWNED BY "public"."policy_application"."id"; + + +-- +-- Name: policy_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."policy_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: policy_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."policy_id_seq" OWNED BY "public"."policy"."id"; + + +-- +-- Name: ppe_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ppe_item" ( + "cycle_mon" integer, + "qty" integer, + "special_ppe" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "dept" character varying(255), + "expire_date" character varying(255), + "issue_date" character varying(255), + "last_inspect_date" character varying(255), + "last_inspect_result" character varying(255), + "person_name" character varying(255), + "post" character varying(255), + "ppe_type" character varying(255), + "spec" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ppe_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ppe_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ppe_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ppe_item_id_seq" OWNED BY "public"."ppe_item"."id"; + + +-- +-- Name: price_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."price_item" ( + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "effective_date" character varying(255), + "name" character varying(255), + "price_type" character varying(255), + "region" character varying(255), + "spec" character varying(255), + "supplier" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: price_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."price_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: price_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."price_item_id_seq" OWNED BY "public"."price_item"."id"; + + +-- +-- Name: project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."project" ( + "progress" integer NOT NULL, + "dept_id" bigint, + "id" bigint NOT NULL, + "end_date" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "phase" character varying(255), + "start_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: project_budget_line; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."project_budget_line" ( + "actual_amount" numeric(38,2), + "budget_amount" numeric(38,2), + "committed_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "company_subject" character varying(255), + "element" character varying(255), + "note" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "status" character varying(255), + "wbs_code" character varying(255), + "wbs_name" character varying(255) +); + + +-- +-- Name: project_budget_line_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."project_budget_line_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: project_budget_line_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."project_budget_line_id_seq" OWNED BY "public"."project_budget_line"."id"; + + +-- +-- Name: project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."project_id_seq" OWNED BY "public"."project"."id"; + + +-- +-- Name: project_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."project_task" ( + "id" bigint NOT NULL, + "project_id" bigint, + "assignee" character varying(255), + "due_date" character varying(255), + "priority" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: project_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."project_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: project_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."project_task_id_seq" OWNED BY "public"."project_task"."id"; + + +-- +-- Name: publicity_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."publicity_task" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "review_opinion" character varying(1000), + "deliverable" character varying(2000), + "requirement" character varying(2000), + "assignee" character varying(255), + "code" character varying(255), + "plan_deadline" character varying(255), + "project_code" character varying(255), + "project_name" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "story_code" character varying(255), + "submit_date" character varying(255), + "task_type" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: publicity_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."publicity_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: publicity_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."publicity_task_id_seq" OWNED BY "public"."publicity_task"."id"; + + +-- +-- Name: publish_channel; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."publish_channel" ( + "publish_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "account_id" character varying(255), + "admin_name" character varying(255), + "channel_desc" character varying(255), + "channel_name" character varying(255), + "channel_status" character varying(255), + "channel_type" character varying(255), + "code" character varying(255), + "home_url" character varying(255), + "last_publish_date" character varying(255), + "registered_date" character varying(255) +); + + +-- +-- Name: publish_channel_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."publish_channel_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: publish_channel_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."publish_channel_id_seq" OWNED BY "public"."publish_channel"."id"; + + +-- +-- Name: qms_audit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qms_audit" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "audit_type" character varying(255), + "auditors" character varying(255), + "code" character varying(255), + "conclusion" character varying(255), + "execute_date" character varying(255), + "plan_date" character varying(255), + "scope" character varying(255), + "status" character varying(255), + "system" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: qms_audit_finding; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qms_audit_finding" ( + "capa_generated" boolean NOT NULL, + "audit_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "clause" character varying(255), + "code" character varying(255), + "corrective_action" character varying(255), + "dept" character varying(255), + "description" character varying(255), + "due_date" character varying(255), + "rectified_date" character varying(255), + "responsible" character varying(255), + "root_cause" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "verifier" character varying(255), + "verify_note" character varying(255) +); + + +-- +-- Name: qms_audit_finding_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qms_audit_finding_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qms_audit_finding_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qms_audit_finding_id_seq" OWNED BY "public"."qms_audit_finding"."id"; + + +-- +-- Name: qms_audit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qms_audit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qms_audit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qms_audit_id_seq" OWNED BY "public"."qms_audit"."id"; + + +-- +-- Name: qms_document; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qms_document" ( + "retention_months" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "superseded_by_id" bigint, + "approver" character varying(255), + "archive_due_date" character varying(255), + "author" character varying(255), + "dept" character varying(255), + "doc_class" character varying(255), + "doc_no" character varying(255), + "effective_date" character varying(255), + "file_url" character varying(255), + "issue_date" character varying(255), + "status" character varying(255), + "superseded_by_version" character varying(255), + "system" character varying(255), + "title" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: qms_document_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qms_document_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qms_document_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qms_document_id_seq" OWNED BY "public"."qms_document"."id"; + + +-- +-- Name: qms_management_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qms_management_review" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "actual_date" character varying(255), + "attendees" character varying(255), + "audit_summary" character varying(255), + "capa_summary" character varying(255), + "code" character varying(255), + "compliance_summary" character varying(255), + "conclusion" character varying(255), + "convener" character varying(255), + "customer_feedback" character varying(255), + "decisions" character varying(255), + "decisions_status" character varying(255), + "external_audit_result" character varying(255), + "objective_summary" character varying(255), + "period" character varying(255), + "plan_date" character varying(255), + "process_perf_summary" character varying(255), + "report_content" character varying(255), + "review_cycle" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: qms_management_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qms_management_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qms_management_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qms_management_review_id_seq" OWNED BY "public"."qms_management_review"."id"; + + +-- +-- Name: qms_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qms_record" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "dept" character varying(255), + "due_date" character varying(255), + "finding" character varying(255), + "owner" character varying(255), + "status" character varying(255), + "title" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: qms_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qms_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qms_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qms_record_id_seq" OWNED BY "public"."qms_record"."id"; + + +-- +-- Name: qsup_quality_lot; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qsup_quality_lot" ( + "accepted_qty" integer, + "on_time" boolean NOT NULL, + "received_qty" integer, + "response_ok" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supplier_id" bigint, + "arrive_date" character varying(255), + "code" character varying(255), + "inspector" character varying(255), + "issue_note" character varying(255), + "mat_name" character varying(255), + "result" character varying(255), + "supplier_name" character varying(255) +); + + +-- +-- Name: qsup_quality_lot_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qsup_quality_lot_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qsup_quality_lot_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qsup_quality_lot_id_seq" OWNED BY "public"."qsup_quality_lot"."id"; + + +-- +-- Name: qual_achievement; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_achievement" ( + "contract_amount" numeric(38,2), + "metric1value" double precision, + "metric2value" double precision, + "used_count" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "awards" character varying(255), + "category" character varying(255), + "code" character varying(255), + "completion_date" character varying(255), + "file_refs" character varying(255), + "linked_decl_ids" character varying(255), + "metric1name" character varying(255), + "metric1unit" character varying(255), + "metric2name" character varying(255), + "metric2unit" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "quality_rating" character varying(255), + "remark" character varying(255), + "start_date" character varying(255), + "usage_status" character varying(255), + "witness_name" character varying(255), + "witness_phone" character varying(255) +); + + +-- +-- Name: qual_achievement_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_achievement_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_achievement_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_achievement_id_seq" OWNED BY "public"."qual_achievement"."id"; + + +-- +-- Name: qual_cert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_cert" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "cert_no" character varying(255), + "cert_type" character varying(255), + "code" character varying(255), + "expire_date" character varying(255), + "file_ref" character varying(255), + "holder" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "level" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "review_cycle" character varying(255), + "scope" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: qual_cert_change; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_cert_change" ( + "material_reused" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "qual_cert_id" bigint, + "updated_at" timestamp(6) with time zone, + "actual_submit_date" character varying(255), + "after_value" character varying(255), + "applicant" character varying(255), + "before_value" character varying(255), + "change_type" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "external_org" character varying(255), + "material_list" character varying(255), + "plan_submit_date" character varying(255), + "qual_cert_name" character varying(255), + "receipt_no" character varying(255), + "remark" character varying(255), + "reuse_from" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: qual_cert_change_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_cert_change_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_cert_change_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_cert_change_id_seq" OWNED BY "public"."qual_cert_change"."id"; + + +-- +-- Name: qual_cert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_cert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_cert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_cert_id_seq" OWNED BY "public"."qual_cert"."id"; + + +-- +-- Name: qual_decl_fee; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_decl_fee" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "fee_type" character varying(255), + "payee" character varying(255), + "remark" character varying(255), + "spend_date" character varying(255) +); + + +-- +-- Name: qual_decl_fee_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_decl_fee_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_decl_fee_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_decl_fee_id_seq" OWNED BY "public"."qual_decl_fee"."id"; + + +-- +-- Name: qual_decl_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_decl_task" ( + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "assignee" character varying(255), + "done_date" character varying(255), + "due_date" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "task_type" character varying(255) +); + + +-- +-- Name: qual_decl_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_decl_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_decl_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_decl_task_id_seq" OWNED BY "public"."qual_decl_task"."id"; + + +-- +-- Name: qual_declaration; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_declaration" ( + "budget" numeric(38,2), + "fee_spent" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "correction_note" character varying(255), + "decl_type" character varying(255), + "dept" character varying(255), + "external_org" character varying(255), + "owner" character varying(255), + "plan_deadline" character varying(255), + "plan_start" character varying(255), + "qual_name" character varying(255), + "receipt_no" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "target_level" character varying(255) +); + + +-- +-- Name: qual_declaration_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_declaration_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_declaration_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_declaration_id_seq" OWNED BY "public"."qual_declaration"."id"; + + +-- +-- Name: qual_elec_license; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_elec_license" ( + "cert_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cert_name" character varying(255), + "cert_no" character varying(255), + "expire_date" character varying(255), + "file_url" character varying(255), + "license_type" character varying(255), + "qr_url" character varying(255), + "registered_by" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: qual_elec_license_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_elec_license_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_elec_license_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_elec_license_id_seq" OWNED BY "public"."qual_elec_license"."id"; + + +-- +-- Name: qual_risk_alert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_risk_alert" ( + "closed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "qual_cert_id" bigint, + "updated_at" timestamp(6) with time zone, + "assignee" character varying(255), + "description" character varying(255), + "dispose_note" character varying(255), + "qual_cert_name" character varying(255), + "required_value" character varying(255), + "risk_type" character varying(255), + "severity" character varying(255), + "status" character varying(255), + "suggestion" character varying(255), + "trigger_value" character varying(255) +); + + +-- +-- Name: qual_risk_alert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_risk_alert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_risk_alert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_risk_alert_id_seq" OWNED BY "public"."qual_risk_alert"."id"; + + +-- +-- Name: qual_safety_accident; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_safety_accident" ( + "death_count" integer, + "injured_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "accident_date" character varying(255), + "accident_level" character varying(255), + "accident_process" character varying(255), + "accident_type" character varying(255), + "code" character varying(255), + "corrective" character varying(255), + "direct_cause" character varying(255), + "direct_loss" character varying(255), + "file_ref" character varying(255), + "indirect_cause" character varying(255), + "location" character varying(255), + "receipt_no" character varying(255), + "remark" character varying(255), + "report_date" character varying(255), + "report_target" character varying(255), + "responsible_dept" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: qual_safety_accident_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_safety_accident_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_safety_accident_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_safety_accident_id_seq" OWNED BY "public"."qual_safety_accident"."id"; + + +-- +-- Name: qual_usage; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_usage" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "qual_cert_id" bigint, + "dept" character varying(255), + "end_date" character varying(255), + "operator" character varying(255), + "qual_name" character varying(255), + "remark" character varying(255), + "scene" character varying(255), + "status" character varying(255), + "used_date" character varying(255), + "used_for" character varying(255) +); + + +-- +-- Name: qual_usage_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_usage_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_usage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_usage_id_seq" OWNED BY "public"."qual_usage"."id"; + + +-- +-- Name: qual_year_check; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."qual_year_check" ( + "exported" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "qual_cert_id" bigint, + "updated_at" timestamp(6) with time zone, + "deadline" character varying(255), + "dept" character varying(255), + "note" character varying(255), + "owner" character varying(255), + "qual_name" character varying(255), + "status" character varying(255), + "year" character varying(255) +); + + +-- +-- Name: qual_year_check_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."qual_year_check_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: qual_year_check_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."qual_year_check_id_seq" OWNED BY "public"."qual_year_check"."id"; + + +-- +-- Name: rd_after_sales_feedback; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_after_sales_feedback" ( + "converted_req_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "customer_name" character varying(255), + "description" character varying(255), + "feedback_type" character varying(255), + "product_code" character varying(255), + "product_line" character varying(255), + "rd_opinion" character varying(255), + "severity" character varying(255), + "source" character varying(255), + "status" character varying(255), + "submitter" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: rd_after_sales_feedback_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_after_sales_feedback_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_after_sales_feedback_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_after_sales_feedback_id_seq" OWNED BY "public"."rd_after_sales_feedback"."id"; + + +-- +-- Name: rd_annual_budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_annual_budget" ( + "actual_used" numeric(38,2), + "amount" numeric(38,2), + "fiscal_year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "budget_type" character varying(255), + "dept" character varying(255), + "expense_item" character varying(255), + "owner" character varying(255), + "rd_project_codes" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_annual_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_annual_budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_annual_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_annual_budget_id_seq" OWNED BY "public"."rd_annual_budget"."id"; + + +-- +-- Name: rd_decl_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_decl_plan" ( + "budget" numeric(38,2), + "expected_benefit" numeric(38,2), + "plan_year" integer, + "progress" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "instance_id" bigint, + "policy_application_id" bigint, + "updated_at" timestamp(6) with time zone, + "remark" character varying(2000), + "department" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "period_type" character varying(255), + "plan_apply_date" character varying(255), + "plan_end_date" character varying(255), + "plan_quarter" character varying(255), + "policy_category" character varying(255), + "program_name" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_decl_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_decl_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_decl_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_decl_plan_id_seq" OWNED BY "public"."rd_decl_plan"."id"; + + +-- +-- Name: rd_design_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_design_review" ( + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "conclusion" character varying(255), + "conclusion_remark" character varying(255), + "dev_project_name" character varying(255), + "host" character varying(255), + "plan_date" character varying(255), + "review_type" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: rd_design_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_design_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_design_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_design_review_id_seq" OWNED BY "public"."rd_design_review"."id"; + + +-- +-- Name: rd_dev_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_dev_project" ( + "budget" numeric(38,2), + "expected_revenue" numeric(38,2), + "product_launched" boolean NOT NULL, + "progress" integer NOT NULL, + "target_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "department" character varying(255), + "dept" character varying(255), + "launch_date" character varying(255), + "leader" character varying(255), + "name" character varying(255), + "objective" character varying(255), + "plan_end" character varying(255), + "plan_start" character varying(255), + "product_line" character varying(255), + "project_type" character varying(255), + "review_opinion" character varying(255), + "stage" character varying(255), + "tech_route" character varying(255) +); + + +-- +-- Name: rd_dev_project_budget; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_dev_project_budget" ( + "actual_amount" numeric(38,2), + "budget_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "category" character varying(255), + "dev_project_name" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: rd_dev_project_budget_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_dev_project_budget_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_dev_project_budget_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_dev_project_budget_id_seq" OWNED BY "public"."rd_dev_project_budget"."id"; + + +-- +-- Name: rd_dev_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_dev_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_dev_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_dev_project_id_seq" OWNED BY "public"."rd_dev_project"."id"; + + +-- +-- Name: rd_dev_wbs_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_dev_wbs_task" ( + "depends_on_seq" integer, + "milestone" boolean NOT NULL, + "progress" integer NOT NULL, + "seq" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "assignee" character varying(255), + "deliverable" character varying(255), + "name" character varying(255), + "plan_end" character varying(255), + "plan_start" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_dev_wbs_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_dev_wbs_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_dev_wbs_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_dev_wbs_task_id_seq" OWNED BY "public"."rd_dev_wbs_task"."id"; + + +-- +-- Name: rd_doc_signoff; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_doc_signoff" ( + "doc_id" bigint, + "id" bigint NOT NULL, + "signed_at" timestamp(6) with time zone, + "decision" character varying(255), + "opinion" character varying(255), + "signer" character varying(255), + "step" character varying(255) +); + + +-- +-- Name: rd_doc_signoff_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_doc_signoff_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_doc_signoff_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_doc_signoff_id_seq" OWNED BY "public"."rd_doc_signoff"."id"; + + +-- +-- Name: rd_doc_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_doc_version" ( + "is_active" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "published_at" timestamp(6) with time zone, + "superseded_by" bigint, + "author" character varying(255), + "doc_type" character varying(255), + "file_ref" character varying(255), + "notified_depts" character varying(255), + "remark" character varying(255), + "signoff_status" character varying(255), + "title" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: rd_doc_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_doc_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_doc_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_doc_version_id_seq" OWNED BY "public"."rd_doc_version"."id"; + + +-- +-- Name: rd_ebom; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_ebom" ( + "qty" double precision NOT NULL, + "seq" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "parent_id" bigint, + "created_by" character varying(255), + "level" character varying(255), + "mat_code" character varying(255), + "mat_name" character varying(255), + "product_name" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "unit" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: rd_ebom_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_ebom_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_ebom_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_ebom_id_seq" OWNED BY "public"."rd_ebom"."id"; + + +-- +-- Name: rd_engineering_change; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_engineering_change" ( + "approval_step" integer, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "affected_product" character varying(255), + "applicant" character varying(255), + "approval_chain" character varying(255), + "change_level" character varying(255), + "code" character varying(255), + "content" character varying(255), + "impact_report" character varying(255), + "reason" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: rd_engineering_change_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_engineering_change_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_engineering_change_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_engineering_change_id_seq" OWNED BY "public"."rd_engineering_change"."id"; + + +-- +-- Name: rd_expense; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_expense" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "rd_project_id" bigint, + "category" character varying(255), + "description" character varying(255), + "occur_date" character varying(255), + "rd_project_name" character varying(255), + "recorder" character varying(255), + "status" character varying(255), + "voucher" character varying(255) +); + + +-- +-- Name: rd_expense_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_expense_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_expense_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_expense_id_seq" OWNED BY "public"."rd_expense"."id"; + + +-- +-- Name: rd_grant_disbursement; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_grant_disbursement" ( + "agency_fee" numeric(38,2), + "grant_amount" numeric(38,2), + "received_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "payment_id" bigint, + "policy_application_id" bigint, + "remark" character varying(1000), + "agency_name" character varying(255), + "authority" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "expected_date" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "received_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_grant_disbursement_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_grant_disbursement_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_grant_disbursement_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_grant_disbursement_id_seq" OWNED BY "public"."rd_grant_disbursement"."id"; + + +-- +-- Name: rd_innovation_point; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_innovation_point" ( + "patent_triggered" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "patent_id" bigint, + "updated_at" timestamp(6) with time zone, + "inno_remark" character varying(1000), + "inno_description" character varying(4000), + "disclosure_content" character varying(6000), + "dev_project_name" character varying(255), + "disclosure_status" character varying(255), + "innovation_type" character varying(255), + "inventors" character varying(255), + "registered_by" character varying(255), + "submitted_date" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: rd_innovation_point_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_innovation_point_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_innovation_point_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_innovation_point_id_seq" OWNED BY "public"."rd_innovation_point"."id"; + + +-- +-- Name: rd_issue; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_issue" ( + "bom_item_id" bigint, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "assignee" character varying(255), + "closed_date" character varying(255), + "code" character varying(255), + "description" character varying(255), + "dev_project_name" character varying(255), + "due_date" character varying(255), + "issue_type" character varying(255), + "reporter" character varying(255), + "root_cause" character varying(255), + "severity" character varying(255), + "solution" character varying(255), + "source_ref" character varying(255), + "source_type" character varying(255), + "status" character varying(255), + "title" character varying(255), + "verify_result" character varying(255) +); + + +-- +-- Name: rd_issue_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_issue_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_issue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_issue_id_seq" OWNED BY "public"."rd_issue"."id"; + + +-- +-- Name: rd_knowledge; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_knowledge" ( + "ref_count" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "applicable_scene" character varying(255), + "author" character varying(255), + "check_items" character varying(255), + "competitor_name" character varying(255), + "competitor_source" character varying(255), + "content" character varying(255), + "dismantle_report" character varying(255), + "file_ref" character varying(255), + "keywords" character varying(255), + "kind" character varying(255), + "lessons" character varying(255), + "module_type" character varying(255), + "performance_spec" character varying(255), + "product_line" character varying(255), + "project_ref" character varying(255), + "root_cause" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: rd_knowledge_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_knowledge_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_knowledge_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_knowledge_id_seq" OWNED BY "public"."rd_knowledge"."id"; + + +-- +-- Name: rd_maintenance_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_maintenance_task" ( + "created_at" timestamp(6) with time zone, + "declaration_id" bigint, + "id" bigint NOT NULL, + "remark" character varying(1000), + "completed_date" character varying(255), + "cycle" character varying(255), + "due_date" character varying(255), + "owner" character varying(255), + "qualification" character varying(255), + "status" character varying(255), + "task_type" character varying(255) +); + + +-- +-- Name: rd_maintenance_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_maintenance_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_maintenance_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_maintenance_task_id_seq" OWNED BY "public"."rd_maintenance_task"."id"; + + +-- +-- Name: rd_material; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_material" ( + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "applicant" character varying(255), + "dev_project_name" character varying(255), + "figure_no" character varying(255), + "mat_code" character varying(255), + "mat_name" character varying(255), + "mat_type" character varying(255), + "material" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "stage" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: rd_material_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_material_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_material_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_material_id_seq" OWNED BY "public"."rd_material"."id"; + + +-- +-- Name: rd_mobile_photo; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_mobile_photo" ( + "dev_project_id" bigint, + "id" bigint NOT NULL, + "uploaded_at" timestamp(6) with time zone, + "wbs_task_id" bigint, + "file_name" character varying(255), + "file_ref" character varying(255), + "file_type" character varying(255), + "preview_url" character varying(255), + "remark" character varying(255), + "uploader" character varying(255) +); + + +-- +-- Name: rd_mobile_photo_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_mobile_photo_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_mobile_photo_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_mobile_photo_id_seq" OWNED BY "public"."rd_mobile_photo"."id"; + + +-- +-- Name: rd_product_cert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_product_cert" ( + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "applicant" character varying(255), + "apply_date" character varying(255), + "cert_no" character varying(255), + "cert_type" character varying(255), + "code" character varying(255), + "issue_date" character varying(255), + "product_name" character varying(255), + "remark" character varying(255), + "report_no" character varying(255), + "status" character varying(255), + "test_agency" character varying(255), + "valid_to" character varying(255) +); + + +-- +-- Name: rd_product_cert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_product_cert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_product_cert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_product_cert_id_seq" OWNED BY "public"."rd_product_cert"."id"; + + +-- +-- Name: rd_product_requirement; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_product_requirement" ( + "converted_project_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "detail" character varying(255), + "priority" character varying(255), + "product_line" character varying(255), + "proposer" character varying(255), + "req_type" character varying(255), + "review_opinion" character varying(255), + "source" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: rd_product_requirement_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_product_requirement_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_product_requirement_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_product_requirement_id_seq" OWNED BY "public"."rd_product_requirement"."id"; + + +-- +-- Name: rd_product_roadmap; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_product_roadmap" ( + "end_year" integer, + "start_year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supersedes_id" bigint, + "code" character varying(255), + "owner" character varying(255), + "product_line" character varying(255), + "published_date" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "title" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: rd_product_roadmap_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_product_roadmap_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_product_roadmap_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_product_roadmap_id_seq" OWNED BY "public"."rd_product_roadmap"."id"; + + +-- +-- Name: rd_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_project" ( + "budget" numeric(38,2), + "progress" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "achievement" character varying(255), + "code" character varying(255), + "department" character varying(255), + "end_date" character varying(255), + "field" character varying(255), + "leader" character varying(255), + "name" character varying(255), + "stage" character varying(255), + "start_date" character varying(255) +); + + +-- +-- Name: rd_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_project_id_seq" OWNED BY "public"."rd_project"."id"; + + +-- +-- Name: rd_prototype_loan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_prototype_loan" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "stock_id" bigint, + "borrower" character varying(255), + "expect_return_date" character varying(255), + "loan_date" character varying(255), + "purpose" character varying(255), + "remark" character varying(255), + "return_date" character varying(255), + "serial_no" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_prototype_loan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_prototype_loan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_prototype_loan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_prototype_loan_id_seq" OWNED BY "public"."rd_prototype_loan"."id"; + + +-- +-- Name: rd_prototype_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_prototype_order" ( + "labor_hours" double precision NOT NULL, + "material_cost" numeric(38,2), + "qty" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "code" character varying(255), + "dev_project_name" character varying(255), + "finish_date" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "plan_date" character varying(255), + "purpose" character varying(255), + "remark" character varying(255), + "serial_no" character varying(255), + "status" character varying(255), + "test_result" character varying(255) +); + + +-- +-- Name: rd_prototype_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_prototype_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_prototype_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_prototype_order_id_seq" OWNED BY "public"."rd_prototype_order"."id"; + + +-- +-- Name: rd_prototype_stock; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_prototype_stock" ( + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "prototype_order_id" bigint, + "current_holder" character varying(255), + "dev_project_name" character varying(255), + "inbound_date" character varying(255), + "location" character varying(255), + "name" character varying(255), + "remark" character varying(255), + "serial_no" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_prototype_stock_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_prototype_stock_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_prototype_stock_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_prototype_stock_id_seq" OWNED BY "public"."rd_prototype_stock"."id"; + + +-- +-- Name: rd_purchase_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_purchase_request" ( + "amount" numeric(38,2), + "qty" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "applicant" character varying(255), + "approve_opinion" character varying(255), + "approver" character varying(255), + "category" character varying(255), + "code" character varying(255), + "dev_project_name" character varying(255), + "item_name" character varying(255), + "need_date" character varying(255), + "purchase_order_no" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "title" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: rd_purchase_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_purchase_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_purchase_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_purchase_request_id_seq" OWNED BY "public"."rd_purchase_request"."id"; + + +-- +-- Name: rd_reuse_module; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_reuse_module" ( + "usage_count" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "rd_project_id" bigint, + "author" character varying(255), + "code" character varying(255), + "constraints" character varying(255), + "description" character varying(255), + "domain" character varying(255), + "interface_spec" character varying(255), + "keywords" character varying(255), + "module_type" character varying(255), + "name" character varying(255), + "status" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: rd_reuse_module_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_reuse_module_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_reuse_module_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_reuse_module_id_seq" OWNED BY "public"."rd_reuse_module"."id"; + + +-- +-- Name: rd_review_vote; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_review_vote" ( + "id" bigint NOT NULL, + "review_id" bigint, + "voted_at" timestamp(6) with time zone, + "decision" character varying(255), + "opinion" character varying(255), + "voter" character varying(255) +); + + +-- +-- Name: rd_review_vote_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_review_vote_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_review_vote_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_review_vote_id_seq" OWNED BY "public"."rd_review_vote"."id"; + + +-- +-- Name: rd_roadmap_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_roadmap_item" ( + "seq" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "roadmap_id" bigint, + "item_status" character varying(255), + "launch_plan" character varying(255), + "positioning" character varying(255), + "product_name" character varying(255), + "target_market" character varying(255), + "tech_route" character varying(255) +); + + +-- +-- Name: rd_roadmap_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_roadmap_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_roadmap_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_roadmap_item_id_seq" OWNED BY "public"."rd_roadmap_item"."id"; + + +-- +-- Name: rd_sci_tech_personnel; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_sci_tech_personnel" ( + "rd_hours" double precision NOT NULL, + "rd_hours_ratio" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "dept" character varying(255), + "education" character varying(255), + "employee_no" character varying(255), + "employment_status" character varying(255), + "fiscal_year" character varying(255), + "job_duty" character varying(255), + "name" character varying(255), + "rd_project_codes" character varying(255), + "remark" character varying(255), + "title_level" character varying(255), + "title_name" character varying(255) +); + + +-- +-- Name: rd_sci_tech_personnel_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_sci_tech_personnel_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_sci_tech_personnel_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_sci_tech_personnel_id_seq" OWNED BY "public"."rd_sci_tech_personnel"."id"; + + +-- +-- Name: rd_service_agency; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_service_agency" ( + "contract_amount" numeric(38,2), + "cooperation_count" integer, + "rating_count" integer, + "rating_sum" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "remark" character varying(1000), + "agency_type" character varying(255), + "contact" character varying(255), + "contract_no" character varying(255), + "name" character varying(255), + "phone" character varying(255), + "service_scope" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_service_agency_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_service_agency_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_service_agency_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_service_agency_id_seq" OWNED BY "public"."rd_service_agency"."id"; + + +-- +-- Name: rd_supplier_sample; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_supplier_sample" ( + "qty" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "produced_material_id" bigint, + "code" character varying(255), + "mat_name" character varying(255), + "receiver" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "submit_date" character varying(255), + "supplier_name" character varying(255), + "test_report_no" character varying(255), + "test_result" character varying(255) +); + + +-- +-- Name: rd_supplier_sample_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_supplier_sample_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_supplier_sample_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_supplier_sample_id_seq" OWNED BY "public"."rd_supplier_sample"."id"; + + +-- +-- Name: rd_test_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_test_plan" ( + "defect_count" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "dev_project_id" bigint, + "id" bigint NOT NULL, + "prototype_order_id" bigint, + "updated_at" timestamp(6) with time zone, + "pass_criteria" character varying(1000), + "test_goal" character varying(1000), + "test_remark" character varying(1000), + "test_method" character varying(2000), + "test_data" character varying(4000), + "actual_end_date" character varying(255), + "actual_start_date" character varying(255), + "created_by" character varying(255), + "issue_ref" character varying(255), + "plan_end_date" character varying(255), + "plan_name" character varying(255), + "plan_start_date" character varying(255), + "report_ref" character varying(255), + "status" character varying(255), + "test_category" character varying(255), + "tester" character varying(255) +); + + +-- +-- Name: rd_test_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_test_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_test_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_test_plan_id_seq" OWNED BY "public"."rd_test_plan"."id"; + + +-- +-- Name: rd_timesheet; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_timesheet" ( + "cost" numeric(38,2), + "hourly_rate" numeric(38,2), + "hours" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "rd_expense_id" bigint, + "rd_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "period" character varying(255), + "person" character varying(255), + "rd_project_name" character varying(255), + "remark" character varying(255), + "role" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: rd_timesheet_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_timesheet_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_timesheet_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_timesheet_id_seq" OWNED BY "public"."rd_timesheet"."id"; + + +-- +-- Name: rd_weekly_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rd_weekly_report" ( + "auto_generated" boolean NOT NULL, + "overdue_count" integer NOT NULL, + "task_count" integer NOT NULL, + "total_progress" integer NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "department" character varying(255), + "period" character varying(255), + "person" character varying(255), + "remark" character varying(255), + "report_type" character varying(255), + "status" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: rd_weekly_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rd_weekly_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rd_weekly_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rd_weekly_report_id_seq" OWNED BY "public"."rd_weekly_report"."id"; + + +-- +-- Name: repayment_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."repayment_plan" ( + "interest" numeric(38,2), + "period_no" integer, + "principal" numeric(38,2), + "created_at" timestamp(6) with time zone, + "financing_id" bigint, + "id" bigint NOT NULL, + "payment_id" bigint, + "due_date" character varying(255), + "financing_code" character varying(255), + "paid_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: repayment_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."repayment_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: repayment_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."repayment_plan_id_seq" OWNED BY "public"."repayment_plan"."id"; + + +-- +-- Name: report_definition; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."report_definition" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "chart_type" character varying(255), + "dimension" character varying(255), + "filter_field" character varying(255), + "filter_value" character varying(255), + "measure" character varying(255), + "measure_field" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "source" character varying(255) +); + + +-- +-- Name: report_definition_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."report_definition_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: report_definition_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."report_definition_id_seq" OWNED BY "public"."report_definition"."id"; + + +-- +-- Name: rule_config; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."rule_config" ( + "enabled" boolean, + "priority" integer, + "threshold" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "action" character varying(255), + "action_param" character varying(255), + "field" character varying(255), + "name" character varying(255) NOT NULL, + "op" character varying(255), + "remark" character varying(255), + "threshold_text" character varying(255), + "trigger_tags" character varying(255) +); + + +-- +-- Name: rule_config_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."rule_config_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: rule_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."rule_config_id_seq" OWNED BY "public"."rule_config"."id"; + + +-- +-- Name: safety_check; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."safety_check" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "check_date" character varying(255), + "code" character varying(255), + "due_date" character varying(255), + "finding" character varying(255), + "item" character varying(255), + "level" character varying(255), + "location" character varying(255), + "rectify_status" character varying(255), + "responsible" character varying(255), + "result" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: safety_check_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."safety_check_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: safety_check_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."safety_check_id_seq" OWNED BY "public"."safety_check"."id"; + + +-- +-- Name: schedule_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."schedule_event" ( + "end_time" timestamp(6) with time zone, + "id" bigint NOT NULL, + "owner_id" bigint, + "start_time" timestamp(6) with time zone, + "owner" character varying(255), + "title" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: schedule_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."schedule_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: schedule_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."schedule_event_id_seq" OWNED BY "public"."schedule_event"."id"; + + +-- +-- Name: seal; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."seal" ( + "id" bigint NOT NULL, + "company_subject" character varying(255), + "custodian" character varying(255), + "name" character varying(255), + "status" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: seal_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."seal_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: seal_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."seal_id_seq" OWNED BY "public"."seal"."id"; + + +-- +-- Name: seal_use; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."seal_use" ( + "copies" integer NOT NULL, + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "seal_id" bigint, + "applicant" character varying(255), + "code" character varying(255), + "doc_name" character varying(255), + "purpose" character varying(255), + "seal_name" character varying(255), + "status" character varying(255), + "subject" character varying(255), + "use_date" character varying(255) +); + + +-- +-- Name: seal_use_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."seal_use_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: seal_use_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."seal_use_id_seq" OWNED BY "public"."seal_use"."id"; + + +-- +-- Name: secret_access_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."secret_access_log" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "secret_id" bigint, + "action" character varying(255), + "client_ip" character varying(255), + "department" character varying(255), + "person" character varying(255), + "purpose" character varying(255), + "secret_level" character varying(255), + "secret_name" character varying(255) +); + + +-- +-- Name: secret_access_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."secret_access_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: secret_access_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."secret_access_log_id_seq" OWNED BY "public"."secret_access_log"."id"; + + +-- +-- Name: sentiment_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sentiment_record" ( + "heat" integer, + "sensitive" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "found_date" character varying(255), + "handle_status" character varying(255), + "handler" character varying(255), + "measure" character varying(255), + "result" character varying(255), + "sentiment" character varying(255), + "source" character varying(255), + "subject" character varying(255), + "title" character varying(255), + "url" character varying(255) +); + + +-- +-- Name: sentiment_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sentiment_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sentiment_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sentiment_record_id_seq" OWNED BY "public"."sentiment_record"."id"; + + +-- +-- Name: sewage_cost_month; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_cost_month" ( + "budget_cost" numeric(38,2), + "budget_variance" numeric(38,2), + "labor_cost" numeric(38,2), + "maint_cost" numeric(38,2), + "management_cost" numeric(38,2), + "power_cost" numeric(38,2), + "reagent_cost" numeric(38,2), + "sludge_cost" numeric(38,2), + "total_cost" numeric(38,2), + "treated_water" double precision, + "unit_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "owner" character varying(255), + "period" character varying(255), + "plant" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: sewage_cost_month_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_cost_month_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_cost_month_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_cost_month_id_seq" OWNED BY "public"."sewage_cost_month"."id"; + + +-- +-- Name: sewage_cost_saving_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_cost_saving_project" ( + "actual_monthly_water" double precision, + "actual_unit_power" double precision, + "actual_unit_reagent" double precision, + "base_monthly_water" double precision, + "base_months" integer, + "base_unit_power" double precision, + "base_unit_reagent" double precision, + "invest_cost" numeric(38,2), + "payback_months" double precision, + "power_price" numeric(38,2), + "reagent_price" numeric(38,2), + "saved_kwh_per_month" double precision, + "saved_kwh_total" double precision, + "saved_power_cost" numeric(38,2), + "saved_reagent_cost" numeric(38,2), + "saved_reagent_kg_per_month" double precision, + "saved_total_cost" numeric(38,2), + "verify_months" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "actual_finish_date" character varying(255), + "code" character varying(255), + "kickoff_date" character varying(255), + "owner" character varying(255), + "plan_finish_date" character varying(255), + "plant" character varying(255), + "proj_status" character varying(255), + "project_name" character varying(255), + "project_type" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: sewage_cost_saving_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_cost_saving_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_cost_saving_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_cost_saving_project_id_seq" OWNED BY "public"."sewage_cost_saving_project"."id"; + + +-- +-- Name: sewage_cross_dept_linkage; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_cross_dept_linkage" ( + "completed_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_id" bigint, + "target_entity_id" bigint, + "triggered_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "event_desc" character varying(500), + "result_note" character varying(1000), + "event_key" character varying(255), + "linkage_action" character varying(255), + "linkage_status" character varying(255), + "owner" character varying(255), + "source_module" character varying(255), + "target_dept" character varying(255), + "target_entity_type" character varying(255) +); + + +-- +-- Name: sewage_cross_dept_linkage_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_cross_dept_linkage_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_cross_dept_linkage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_cross_dept_linkage_id_seq" OWNED BY "public"."sewage_cross_dept_linkage"."id"; + + +-- +-- Name: sewage_detection_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_detection_report" ( + "avg_ammonia" double precision, + "avg_cod" double precision, + "avg_tp" double precision, + "compliance_rate" double precision, + "compliant_count" integer, + "exceed_count" integer, + "max_ammonia" double precision, + "max_cod" double precision, + "max_tp" double precision, + "submitted" boolean, + "total_samples" integer, + "warn_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "code" character varying(255), + "exceed_summary" character varying(255), + "generated_by" character varying(255), + "period_end" character varying(255), + "period_start" character varying(255), + "plant" character varying(255), + "report_type" character varying(255), + "review_note" character varying(255), + "signed_at" character varying(255), + "signed_by" character varying(255), + "standard" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_detection_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_detection_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_detection_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_detection_report_id_seq" OWNED BY "public"."sewage_detection_report"."id"; + + +-- +-- Name: sewage_emergency_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_emergency_plan" ( + "drill_freq_months" integer, + "last_drill_participants" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "last_activated_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "code" character varying(255), + "contacts" character varying(255), + "content" character varying(255), + "emergency_type" character varying(255), + "last_activated_by" character varying(255), + "last_drill_date" character varying(255), + "last_drill_grade" character varying(255), + "last_drill_summary" character varying(255), + "last_event_desc" character varying(255), + "last_event_result" character varying(255), + "name" character varying(255), + "next_drill_date" character varying(255), + "plant" character varying(255), + "resources" character varying(255), + "review_date" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: sewage_emergency_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_emergency_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_emergency_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_emergency_plan_id_seq" OWNED BY "public"."sewage_emergency_plan"."id"; + + +-- +-- Name: sewage_energy_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_energy_log" ( + "power_cost" numeric(38,2), + "power_kwh" double precision, + "power_price" numeric(38,2), + "reagent_cost" numeric(38,2), + "reagent_kg" double precision, + "reagent_price" numeric(38,2), + "treated_water" double precision, + "unit_cost" numeric(38,2), + "unit_power" double precision, + "unit_reagent" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "log_date" character varying(255), + "owner" character varying(255), + "plant" character varying(255), + "reagent_name" character varying(255) +); + + +-- +-- Name: sewage_energy_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_energy_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_energy_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_energy_log_id_seq" OWNED BY "public"."sewage_energy_log"."id"; + + +-- +-- Name: sewage_env_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_env_record" ( + "compliant" boolean, + "gas_limit" double precision, + "h2s_value" double precision, + "nh3value" double precision, + "noise_db_value" double precision, + "noise_limit" double precision, + "waste_kg" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "code" character varying(255), + "exceed_note" character varying(255), + "manifest_no" character varying(255), + "measure_point" character varying(255), + "media_type" character varying(255), + "operator" character varying(255), + "plant" character varying(255), + "record_date" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "waste_disposal_method" character varying(255), + "waste_disposal_unit" character varying(255) +); + + +-- +-- Name: sewage_env_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_env_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_env_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_env_record_id_seq" OWNED BY "public"."sewage_env_record"."id"; + + +-- +-- Name: sewage_equipment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_equipment" ( + "design_life_years" integer, + "downtime_hours" double precision, + "fault_count" integer, + "last_maint_run_hours" double precision, + "maint_interval_hours" double precision, + "run_hours" double precision, + "start_stop_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "category" character varying(255), + "code" character varying(255), + "commission_date" character varying(255), + "model" character varying(255), + "name" character varying(255), + "process_section" character varying(255), + "qr_tag" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "tag" character varying(255) +); + + +-- +-- Name: sewage_equipment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_equipment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_equipment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_equipment_id_seq" OWNED BY "public"."sewage_equipment"."id"; + + +-- +-- Name: sewage_ext_lab_commission; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_ext_lab_commission" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "internal_report_id" bigint, + "linkage_id" bigint, + "updated_at" timestamp(6) with time zone, + "commission_remark" character varying(500), + "exceed_items" character varying(500), + "correction_note" character varying(1000), + "test_items" character varying(1000), + "result_summary" character varying(2000), + "actual_report_date" character varying(255), + "commission_date" character varying(255), + "commission_no" character varying(255), + "compliance_result" character varying(255), + "lab_cert_no" character varying(255), + "lab_name" character varying(255), + "owner" character varying(255), + "planned_report_date" character varying(255), + "plant" character varying(255), + "sample_date" character varying(255), + "sample_no" character varying(255), + "sample_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_ext_lab_commission_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_ext_lab_commission_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_ext_lab_commission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_ext_lab_commission_id_seq" OWNED BY "public"."sewage_ext_lab_commission"."id"; + + +-- +-- Name: sewage_gov_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_gov_report" ( + "alert_count" integer, + "ammonia_removal_rate" double precision, + "avg_ammonia_in" double precision, + "avg_ammonia_out" double precision, + "avg_cod_in" double precision, + "avg_cod_out" double precision, + "avg_daily_volume" double precision, + "avg_tp_in" double precision, + "avg_tp_out" double precision, + "cod_reduction_kg" double precision, + "cod_removal_rate" double precision, + "compliance_rate" double precision, + "design_capacity" double precision, + "exceedance_count" integer, + "load_rate" double precision, + "online_device_count" integer, + "reagent_volume" double precision, + "sludge_volume" double precision, + "tp_removal_rate" double precision, + "treated_volume" double precision, + "unit_power_consump" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reported_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "report_remark" character varying(2000), + "code" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "plant" character varying(255), + "report_status" character varying(255), + "report_type" character varying(255), + "report_unit" character varying(255), + "reviewer" character varying(255) +); + + +-- +-- Name: sewage_gov_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_gov_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_gov_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_gov_report_id_seq" OWNED BY "public"."sewage_gov_report"."id"; + + +-- +-- Name: sewage_inflow_forecast; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_inflow_forecast" ( + "actual_inflow" double precision, + "forecast_ammonia_in" double precision, + "forecast_cod_in" double precision, + "forecast_error" double precision, + "forecast_error_pct" double precision, + "forecast_inflow" double precision, + "hist_avg_inflow" double precision, + "recommend_aeration" double precision, + "recommend_chem_dose" double precision, + "recommend_pump_freq" double precision, + "weather_factor" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "strategy_note" character varying(1000), + "code" character varying(255), + "forecast_date" character varying(255), + "forecast_status" character varying(255), + "matched_scheme" character varying(255), + "owner" character varying(255), + "plant" character varying(255), + "weather_type" character varying(255) +); + + +-- +-- Name: sewage_inflow_forecast_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_inflow_forecast_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_inflow_forecast_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_inflow_forecast_id_seq" OWNED BY "public"."sewage_inflow_forecast"."id"; + + +-- +-- Name: sewage_mobile_queue; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_mobile_queue" ( + "retry_count" integer, + "client_seq" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "synced_at" timestamp(6) with time zone, + "target_id" bigint, + "error_msg" character varying(255), + "offline_at" character varying(255), + "op_type" character varying(255), + "operator" character varying(255), + "payload" character varying(255), + "replay_result" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_mobile_queue_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_mobile_queue_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_mobile_queue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_mobile_queue_id_seq" OWNED BY "public"."sewage_mobile_queue"."id"; + + +-- +-- Name: sewage_occ_health; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_occ_health" ( + "exposure_years" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "adjustment_note" character varying(255), + "check_conclusion" character varying(255), + "check_institution" character varying(255), + "code" character varying(255), + "employee_name" character varying(255), + "employee_no" character varying(255), + "hazard_factors" character varying(255), + "health_record_ref" character varying(255), + "last_check_date" character varying(255), + "next_check_date" character varying(255), + "plant" character varying(255), + "position" character varying(255), + "ppe_record" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_occ_health_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_occ_health_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_occ_health_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_occ_health_id_seq" OWNED BY "public"."sewage_occ_health"."id"; + + +-- +-- Name: sewage_patrol_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_patrol_record" ( + "hazard_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "route_id" bigint, + "code" character varying(255), + "end_time" character varying(255), + "hazard_summary" character varying(255), + "item_results" character varying(255), + "patrol_date" character varying(255), + "patroller" character varying(255), + "plant" character varying(255), + "rectify_ref" character varying(255), + "remark" character varying(255), + "route_name" character varying(255), + "start_time" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_patrol_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_patrol_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_patrol_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_patrol_record_id_seq" OWNED BY "public"."sewage_patrol_record"."id"; + + +-- +-- Name: sewage_patrol_route; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_patrol_route" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "area_type" character varying(255), + "check_items" character varying(255), + "code" character varying(255), + "frequency" character varying(255), + "name" character varying(255), + "plant" character varying(255), + "remark" character varying(255), + "responsible" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_patrol_route_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_patrol_route_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_patrol_route_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_patrol_route_id_seq" OWNED BY "public"."sewage_patrol_route"."id"; + + +-- +-- Name: sewage_plant_benchmark; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_plant_benchmark" ( + "capacity" double precision, + "compliance_rate" double precision, + "equip_intact_rate" double precision, + "is_self" boolean, + "unit_power" double precision, + "unit_reagent" double precision, + "unit_repair_cost" numeric(38,2), + "unit_total_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "data_src" character varying(255), + "discharge_std" character varying(255), + "maintainer" character varying(255), + "plant_name" character varying(255), + "region" character varying(255), + "stat_period" character varying(255) +); + + +-- +-- Name: sewage_plant_benchmark_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_plant_benchmark_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_plant_benchmark_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_plant_benchmark_id_seq" OWNED BY "public"."sewage_plant_benchmark"."id"; + + +-- +-- Name: sewage_power_section_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_power_section_log" ( + "peak_cost" numeric(38,2), + "peak_kwh" double precision, + "peak_price" numeric(38,2), + "peak_ratio_pct" double precision, + "total_cost" numeric(38,2), + "total_kwh" double precision, + "valley_cost" numeric(38,2), + "valley_kwh" double precision, + "valley_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "log_date" character varying(255), + "owner" character varying(255), + "plant" character varying(255), + "remark" character varying(255), + "section" character varying(255) +); + + +-- +-- Name: sewage_power_section_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_power_section_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_power_section_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_power_section_log_id_seq" OWNED BY "public"."sewage_power_section_log"."id"; + + +-- +-- Name: sewage_process_run; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_process_run" ( + "ammonia_in" double precision, + "ammonia_out" double precision, + "ammonia_removal" double precision, + "cod_in" double precision, + "cod_out" double precision, + "cod_removal" double precision, + "dissolved_oxygen" double precision, + "inflow" double precision, + "mlss" double precision, + "outflow" double precision, + "tp_in" double precision, + "tp_out" double precision, + "tp_removal" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "alert_level" character varying(255), + "alert_note" character varying(255), + "code" character varying(255), + "owner" character varying(255), + "plant" character varying(255), + "run_date" character varying(255), + "shift" character varying(255), + "standard" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_process_run_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_process_run_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_process_run_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_process_run_id_seq" OWNED BY "public"."sewage_process_run"."id"; + + +-- +-- Name: sewage_process_scheme; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_process_scheme" ( + "active" boolean, + "aeration_rate" double precision, + "ammonia_max_threshold" double precision, + "chemical_dose" double precision, + "cod_max_threshold" double precision, + "do_target" double precision, + "inner_recycle_ratio" double precision, + "mlss_target" double precision, + "outer_recycle_ratio" double precision, + "tp_max_threshold" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "chemical_name" character varying(255), + "code" character varying(255), + "influent_scenario" character varying(255), + "name" character varying(255), + "operation_note" character varying(255), + "plant" character varying(255) +); + + +-- +-- Name: sewage_process_scheme_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_process_scheme_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_process_scheme_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_process_scheme_id_seq" OWNED BY "public"."sewage_process_scheme"."id"; + + +-- +-- Name: sewage_reagent_stock; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_reagent_stock" ( + "amount" numeric(38,2), + "current_stock" double precision, + "quantity" double precision, + "safety_stock" double precision, + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "op_date" character varying(255), + "operator" character varying(255), + "plant" character varying(255), + "reagent_name" character varying(255), + "remark" character varying(255), + "supplier" character varying(255), + "type" character varying(255) +); + + +-- +-- Name: sewage_reagent_stock_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_reagent_stock_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_reagent_stock_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_reagent_stock_id_seq" OWNED BY "public"."sewage_reagent_stock"."id"; + + +-- +-- Name: sewage_report_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_report_template" ( + "is_builtin" boolean, + "is_enabled" boolean, + "sort_order" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "template_fields" character varying(1000), + "tpl_remark" character varying(2000), + "authority_name" character varying(255), + "code" character varying(255), + "emission_std" character varying(255), + "province_city" character varying(255), + "report_freq" character varying(255), + "report_type_key" character varying(255), + "template_name" character varying(255) +); + + +-- +-- Name: sewage_report_template_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_report_template_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_report_template_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_report_template_id_seq" OWNED BY "public"."sewage_report_template"."id"; + + +-- +-- Name: sewage_sampling_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_sampling_plan" ( + "ammonia_value" double precision, + "cod_value" double precision, + "ph_value" double precision, + "rpd" double precision, + "spike_recovery" double precision, + "ss_value" double precision, + "tn_value" double precision, + "tp_value" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "assignee" character varying(255), + "blank_result" character varying(255), + "code" character varying(255), + "exceed_note" character varying(255), + "plan_date" character varying(255), + "plant" character varying(255), + "qc_warn_note" character varying(255), + "rectification_code" character varying(255), + "remark" character varying(255), + "result" character varying(255), + "sample_no" character varying(255), + "sample_point" character varying(255), + "sample_type" character varying(255), + "sampled_at" character varying(255), + "sampler" character varying(255), + "standard" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_sampling_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_sampling_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_sampling_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_sampling_plan_id_seq" OWNED BY "public"."sewage_sampling_plan"."id"; + + +-- +-- Name: sewage_shift_handover; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_shift_handover" ( + "ammonia_out" double precision, + "cod_in" double precision, + "cod_out" double precision, + "treated_water" double precision, + "accepted_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "chemical_notes" character varying(255), + "code" character varying(255), + "completed_work_orders" character varying(255), + "equipment_status" character varying(255), + "fault_record" character varying(255), + "handover_date" character varying(255), + "incoming_staff" character varying(255), + "outgoing_staff" character varying(255), + "pending_items" character varying(255), + "plant" character varying(255), + "process_status" character varying(255), + "remark" character varying(255), + "safety_notes" character varying(255), + "shift" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sewage_shift_handover_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_shift_handover_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_shift_handover_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_shift_handover_id_seq" OWNED BY "public"."sewage_shift_handover"."id"; + + +-- +-- Name: sewage_sludge_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_sludge_record" ( + "contract_price" numeric(38,2), + "disposal_fee" numeric(38,2), + "dry_weight" double precision, + "moisture" double precision, + "net_cost" numeric(38,2), + "recycle_revenue" numeric(38,2), + "unit_price" numeric(38,2), + "wet_weight" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "dest_unit" character varying(255), + "disposal_method" character varying(255), + "owner" character varying(255), + "record_date" character varying(255), + "signed_date" character varying(255), + "status" character varying(255), + "transporter" character varying(255), + "vehicle_no" character varying(255), + "waste_type" character varying(255) +); + + +-- +-- Name: sewage_sludge_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_sludge_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_sludge_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_sludge_record_id_seq" OWNED BY "public"."sewage_sludge_record"."id"; + + +-- +-- Name: sewage_spare_part; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_spare_part" ( + "min_stock" integer, + "quantity" integer, + "safety_stock" integer, + "total_value" numeric(38,2), + "unit_price" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "applicable_equipment" character varying(255), + "code" character varying(255), + "location" character varying(255), + "name" character varying(255), + "process_section" character varying(255), + "procure_suggestion" character varying(255), + "remark" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supplier" character varying(255), + "unit" character varying(255) +); + + +-- +-- Name: sewage_spare_part_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_spare_part_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_spare_part_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_spare_part_id_seq" OWNED BY "public"."sewage_spare_part"."id"; + + +-- +-- Name: sewage_work_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sewage_work_order" ( + "downtime_hours" double precision, + "spare_cost" numeric(38,2), + "created_at" timestamp(6) with time zone, + "equipment_id" bigint, + "id" bigint NOT NULL, + "assignee" character varying(255), + "code" character varying(255), + "dispatch_time" character varying(255), + "equipment_code" character varying(255), + "equipment_name" character varying(255), + "fault_desc" character varying(255), + "finish_time" character varying(255), + "order_type" character varying(255), + "photo_ref" character varying(255), + "priority" character varying(255), + "report_time" character varying(255), + "reporter" character varying(255), + "spares_used" character varying(255), + "status" character varying(255), + "test_result" character varying(255) +); + + +-- +-- Name: sewage_work_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sewage_work_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sewage_work_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sewage_work_order_id_seq" OWNED BY "public"."sewage_work_order"."id"; + + +-- +-- Name: sfac_facility; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sfac_facility" ( + "check_cycle_days" integer, + "qty" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "check_result" character varying(255), + "code" character varying(255), + "facility_type" character varying(255), + "last_check_date" character varying(255), + "last_maint_date" character varying(255), + "location" character varying(255), + "maint_note" character varying(255), + "name" character varying(255), + "next_check_date" character varying(255), + "responsible" character varying(255), + "spec" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sfac_facility_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sfac_facility_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sfac_facility_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sfac_facility_id_seq" OWNED BY "public"."sfac_facility"."id"; + + +-- +-- Name: sfty_investment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sfty_investment" ( + "amount" numeric(38,2), + "used_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "category" character varying(255), + "code" character varying(255), + "dept" character varying(255), + "item" character varying(255), + "occur_date" character varying(255), + "operator" character varying(255), + "period" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sfty_investment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sfty_investment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sfty_investment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sfty_investment_id_seq" OWNED BY "public"."sfty_investment"."id"; + + +-- +-- Name: sfty_responsibility; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sfty_responsibility" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "renewed_from_id" bigint, + "code" character varying(255), + "expire_date" character varying(255), + "level" character varying(255), + "objectives" character varying(255), + "partya" character varying(255), + "partyb" character varying(255), + "sign_date" character varying(255), + "signer" character varying(255), + "status" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: sfty_responsibility_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sfty_responsibility_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sfty_responsibility_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sfty_responsibility_id_seq" OWNED BY "public"."sfty_responsibility"."id"; + + +-- +-- Name: sfty_training; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sfty_training" ( + "hours" integer, + "pass_score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "content" character varying(255), + "dept" character varying(255), + "lecturer" character varying(255), + "plan_date" character varying(255), + "status" character varying(255), + "title" character varying(255), + "train_type" character varying(255) +); + + +-- +-- Name: sfty_training_enrollment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sfty_training_enrollment" ( + "archived" boolean NOT NULL, + "passed" boolean NOT NULL, + "score" integer, + "signed_in" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "training_id" bigint, + "dept" character varying(255), + "sign_in_date" character varying(255), + "trainee_name" character varying(255) +); + + +-- +-- Name: sfty_training_enrollment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sfty_training_enrollment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sfty_training_enrollment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sfty_training_enrollment_id_seq" OWNED BY "public"."sfty_training_enrollment"."id"; + + +-- +-- Name: sfty_training_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sfty_training_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sfty_training_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sfty_training_id_seq" OWNED BY "public"."sfty_training"."id"; + + +-- +-- Name: staff_credential; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."staff_credential" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "borrow_date" character varying(255), + "borrow_state" character varying(255), + "borrower" character varying(255), + "cred_no" character varying(255), + "cred_type" character varying(255), + "dept" character varying(255), + "due_return_date" character varying(255), + "expire_date" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "last_edu_date" character varying(255), + "lock_state" character varying(255), + "locked_date" character varying(255), + "locked_project" character varying(255), + "major" character varying(255), + "person_name" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: staff_credential_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."staff_credential_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: staff_credential_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."staff_credential_id_seq" OWNED BY "public"."staff_credential"."id"; + + +-- +-- Name: staff_dossier; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."staff_dossier" ( + "completeness" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "contract_expire" character varying(255), + "dept" character varying(255), + "dossier_status" character varying(255), + "employee_no" character varying(255), + "hire_date" character varying(255), + "id_card_expire" character varying(255), + "id_card_no" character varying(255), + "name" character varying(255), + "position" character varying(255), + "remark" character varying(255) +); + + +-- +-- Name: staff_dossier_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."staff_dossier_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: staff_dossier_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."staff_dossier_id_seq" OWNED BY "public"."staff_dossier"."id"; + + +-- +-- Name: staff_dossier_item; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."staff_dossier_item" ( + "auto_archived" boolean, + "created_at" timestamp(6) with time zone, + "dossier_id" bigint, + "id" bigint NOT NULL, + "archive_date" character varying(255), + "category" character varying(255), + "expire_date" character varying(255), + "file_ref" character varying(255), + "remark" character varying(255), + "source_event" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: staff_dossier_item_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."staff_dossier_item_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: staff_dossier_item_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."staff_dossier_item_id_seq" OWNED BY "public"."staff_dossier_item"."id"; + + +-- +-- Name: staff_self_request; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."staff_self_request" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reviewed_at" timestamp(6) with time zone, + "applicant_name" character varying(255), + "cert_type" character varying(255), + "corrected_value" character varying(255), + "description" character varying(255), + "employee_no" character varying(255), + "file_ref" character varying(255), + "req_type" character varying(255), + "review_note" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "target_category" character varying(255), + "target_field" character varying(255) +); + + +-- +-- Name: staff_self_request_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."staff_self_request_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: staff_self_request_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."staff_self_request_id_seq" OWNED BY "public"."staff_self_request"."id"; + + +-- +-- Name: standard_cost; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."standard_cost" ( + "actual_cost" numeric(38,2), + "labor_cost" numeric(38,2), + "material_cost" numeric(38,2), + "overhead_cost" numeric(38,2), + "total_standard" numeric(38,2), + "variance" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "cost_center" character varying(255), + "note" character varying(255), + "period" character varying(255), + "product_code" character varying(255), + "product_name" character varying(255) +); + + +-- +-- Name: standard_cost_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."standard_cost_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: standard_cost_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."standard_cost_id_seq" OWNED BY "public"."standard_cost"."id"; + + +-- +-- Name: std_application; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."std_application" ( + "stage_expected_days" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "rd_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "attachments" character varying(255), + "code" character varying(255), + "drafters" character varying(255), + "drafting_unit" character varying(255), + "owner" character varying(255), + "plan_no" character varying(255), + "remark" character varying(255), + "stage" character varying(255), + "stage_start_date" character varying(255), + "std_name" character varying(255), + "std_type" character varying(255), + "supervisor" character varying(255), + "tech_content" "text" +); + + +-- +-- Name: std_application_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."std_application_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: std_application_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."std_application_id_seq" OWNED BY "public"."std_application"."id"; + + +-- +-- Name: stl_bank_reconciliation; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stl_bank_reconciliation" ( + "bank_balance" numeric(38,2), + "book_balance" numeric(38,2), + "diff" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "bank_account" character varying(255), + "bank_account_no" character varying(255), + "bank_name" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "owner" character varying(255), + "reconcile_date" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: stl_bank_reconciliation_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stl_bank_reconciliation_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stl_bank_reconciliation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stl_bank_reconciliation_id_seq" OWNED BY "public"."stl_bank_reconciliation"."id"; + + +-- +-- Name: stl_forex_risk; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stl_forex_risk" ( + "cny_equiv" numeric(38,2), + "foreign_amount" numeric(38,2), + "hedge_rate" numeric(38,2), + "ref_rate" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "authorized_by" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "compliance_note" character varying(255), + "counterparty_bank" character varying(255), + "created_by" character varying(255), + "currency" character varying(255), + "hedge_instrument" character varying(255), + "maturity_date" character varying(255), + "risk_note" character varying(255), + "risk_type" character varying(255), + "status" character varying(255), + "trade_ref" character varying(255) +); + + +-- +-- Name: stl_forex_risk_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stl_forex_risk_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stl_forex_risk_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stl_forex_risk_id_seq" OWNED BY "public"."stl_forex_risk"."id"; + + +-- +-- Name: stl_fund_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stl_fund_plan" ( + "actual_inflow" numeric(38,2), + "actual_outflow" numeric(38,2), + "forecast_balance" numeric(38,2), + "opening_balance" numeric(38,2), + "plan_inflow" numeric(38,2), + "plan_outflow" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "company_subject" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "plan_type" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: stl_fund_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stl_fund_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stl_fund_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stl_fund_plan_id_seq" OWNED BY "public"."stl_fund_plan"."id"; + + +-- +-- Name: stl_fund_plan_submission; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stl_fund_plan_submission" ( + "adjusted_inflow" numeric(38,2), + "adjusted_outflow" numeric(38,2), + "forecast_balance" numeric(38,2), + "opening_balance" numeric(38,2), + "plan_inflow" numeric(38,2), + "plan_outflow" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "submitted_at" timestamp(6) with time zone, + "balance_opinion" character varying(255), + "balanced_by" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "period" character varying(255), + "reject_reason" character varying(255), + "status" character varying(255), + "submission_type" character varying(255), + "submitted_by" character varying(255) +); + + +-- +-- Name: stl_fund_plan_submission_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stl_fund_plan_submission_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stl_fund_plan_submission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stl_fund_plan_submission_id_seq" OWNED BY "public"."stl_fund_plan_submission"."id"; + + +-- +-- Name: stl_internal_settle_rule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stl_internal_settle_rule" ( + "agree_interest_rate" double precision, + "agree_unit_price" numeric(38,2), + "alloc_ratio" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "alloc_mode" character varying(255), + "apply_scope" character varying(255), + "code" character varying(255), + "created_by" character varying(255), + "effect_date" character varying(255), + "expire_date" character varying(255), + "interest_cycle" character varying(255), + "price_mode" character varying(255), + "rule_name" character varying(255), + "rule_remark" character varying(255), + "status" character varying(255), + "trans_type" character varying(255) +); + + +-- +-- Name: stl_internal_settle_rule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stl_internal_settle_rule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stl_internal_settle_rule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stl_internal_settle_rule_id_seq" OWNED BY "public"."stl_internal_settle_rule"."id"; + + +-- +-- Name: stl_payment_refund; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stl_payment_refund" ( + "orig_amount" numeric(38,2), + "refund_amount" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "orig_receipt_id" bigint, + "refund_payment_id" bigint, + "applicant" character varying(255), + "approval_opinion" character varying(255), + "code" character varying(255), + "orig_receipt_code" character varying(255), + "refund_account_no" character varying(255), + "refund_date" character varying(255), + "refund_reason" character varying(255), + "refund_to" character varying(255), + "refund_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: stl_payment_refund_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stl_payment_refund_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stl_payment_refund_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stl_payment_refund_id_seq" OWNED BY "public"."stl_payment_refund"."id"; + + +-- +-- Name: stl_settlement; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stl_settlement" ( + "amount" numeric(38,2), + "review1passed" boolean, + "review2passed" boolean, + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "payment_id" bigint, + "applicant" character varying(255), + "biz_date" character varying(255), + "code" character varying(255), + "company_subject" character varying(255), + "counterparty" character varying(255), + "currency" character varying(255), + "review1at" character varying(255), + "review1opinion" character varying(255), + "review2at" character varying(255), + "review2opinion" character varying(255), + "reviewer1" character varying(255), + "reviewer2" character varying(255), + "settle_type" character varying(255), + "status" character varying(255), + "summary" character varying(255) +); + + +-- +-- Name: stl_settlement_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stl_settlement_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stl_settlement_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stl_settlement_id_seq" OWNED BY "public"."stl_settlement"."id"; + + +-- +-- Name: stored_file; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."stored_file" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "size" bigint, + "uploader_id" bigint, + "content_type" character varying(255), + "name" character varying(255) NOT NULL, + "uploader_name" character varying(255), + "data" "bytea" +); + + +-- +-- Name: stored_file_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."stored_file_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: stored_file_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."stored_file_id_seq" OWNED BY "public"."stored_file"."id"; + + +-- +-- Name: supervision_inspection; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."supervision_inspection" ( + "created_at" timestamp(6) with time zone, + "design_doc_id" bigint, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "code" character varying(255), + "conclusion" character varying(255), + "content" character varying(255), + "inspect_date" character varying(255), + "inspect_type" character varying(255), + "inspector" character varying(255), + "part" character varying(255), + "problem" character varying(255), + "rectify_due_date" character varying(255), + "rectify_result" character varying(255), + "rectify_status" character varying(255), + "supervision_project_code" character varying(255) +); + + +-- +-- Name: supervision_inspection_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."supervision_inspection_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: supervision_inspection_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."supervision_inspection_id_seq" OWNED BY "public"."supervision_inspection"."id"; + + +-- +-- Name: supervision_log; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."supervision_log" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "content" character varying(255), + "handle_status" character varying(255), + "log_date" character varying(255), + "log_type" character varying(255), + "problem" character varying(255), + "project_name" character varying(255), + "supervisor" character varying(255) +); + + +-- +-- Name: supervision_log_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."supervision_log_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: supervision_log_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."supervision_log_id_seq" OWNED BY "public"."supervision_log"."id"; + + +-- +-- Name: supervision_project; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."supervision_project" ( + "contract_amount" numeric(38,2), + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "project_id" bigint, + "chief_supervisor" character varying(255), + "code" character varying(255), + "constructor" character varying(255), + "contract_no" character varying(255), + "end_date" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "remark" character varying(255), + "scale" character varying(255), + "stage" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "supervision_unit" character varying(255) +); + + +-- +-- Name: supervision_project_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."supervision_project_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: supervision_project_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."supervision_project_id_seq" OWNED BY "public"."supervision_project"."id"; + + +-- +-- Name: supplier; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."supplier" ( + "id" bigint NOT NULL, + "bank_account" character varying(255), + "bank_name" character varying(255), + "category" character varying(255), + "contact" character varying(255), + "credit_code" character varying(255), + "name" character varying(255), + "phone" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: supplier_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."supplier_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: supplier_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."supplier_id_seq" OWNED BY "public"."supplier"."id"; + + +-- +-- Name: survey; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."survey" ( + "response_count" integer NOT NULL, + "id" bigint NOT NULL, + "author" character varying(255), + "deadline" character varying(255), + "description" "text", + "status" character varying(255), + "title" character varying(255), + "options_json" "text", + "voters_json" "text" +); + + +-- +-- Name: survey_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."survey_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: survey_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."survey_id_seq" OWNED BY "public"."survey"."id"; + + +-- +-- Name: sv_accident; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_accident" ( + "emergency_activated" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "report_time" timestamp(6) with time zone, + "supervision_project_id" bigint, + "accident_no" character varying(255), + "accident_type" character varying(255), + "attachment_refs" character varying(255), + "casualty_info" character varying(255), + "corrective_date" character varying(255), + "corrective_measures" character varying(255), + "emergency_desc" character varying(255), + "emergency_plan_ref" character varying(255), + "investigation_result" character varying(255), + "level" character varying(255), + "location" character varying(255), + "occur_time" character varying(255), + "preliminary_cause" character varying(255), + "project_code" character varying(255), + "reporter" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sv_accident_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_accident_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_accident_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_accident_id_seq" OWNED BY "public"."sv_accident"."id"; + + +-- +-- Name: sv_archive_transfer; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_archive_transfer" ( + "archive_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "file_list" character varying(8000), + "assembly_status" character varying(255), + "received_date" character varying(255), + "receiver" character varying(255), + "receiver_org" character varying(255), + "receiver_sign" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "transfer_code" character varying(255), + "transfer_date" character varying(255), + "transfer_type" character varying(255), + "volume_summary" character varying(255) +); + + +-- +-- Name: sv_archive_transfer_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_archive_transfer_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_archive_transfer_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_archive_transfer_id_seq" OWNED BY "public"."sv_archive_transfer"."id"; + + +-- +-- Name: sv_change_claim; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_change_claim" ( + "approved_amount" numeric(38,2), + "claim_amount" numeric(38,2), + "deduction" numeric(38,2), + "duration_impact" integer, + "over_ratio_alert" boolean, + "ratio_pct" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "change_order_no" character varying(255), + "code" character varying(255), + "item_type" character varying(255), + "media_ref" character varying(255), + "quantity_confirm_no" character varying(255), + "review_opinion" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "submit_date" character varying(255), + "submit_unit" character varying(255), + "supervision_project_code" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: sv_change_claim_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_change_claim_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_change_claim_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_change_claim_id_seq" OWNED BY "public"."sv_change_claim"."id"; + + +-- +-- Name: sv_drawing_issue; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_drawing_issue" ( + "created_at" timestamp(6) with time zone, + "drawing_id" bigint, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "closed_date" character varying(255), + "confirm_note" character varying(255), + "design_reply" character varying(255), + "discipline" character varying(255), + "drawing_no" character varying(255), + "drawing_version" character varying(255), + "issue_code" character varying(255), + "issue_desc" character varying(255), + "issue_type" character varying(255), + "raised_by" character varying(255), + "raised_date" character varying(255), + "reply_date" character varying(255), + "status" character varying(255), + "urgency" character varying(255) +); + + +-- +-- Name: sv_drawing_issue_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_drawing_issue_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_drawing_issue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_drawing_issue_id_seq" OWNED BY "public"."sv_drawing_issue"."id"; + + +-- +-- Name: sv_equipment_ledger; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_equipment_ledger" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "borrow_date" character varying(255), + "calib_cert_no" character varying(255), + "calib_org" character varying(255), + "current_holder" character varying(255), + "equip_code" character varying(255), + "last_calib_date" character varying(255), + "manufacturer" character varying(255), + "model" character varying(255), + "name" character varying(255), + "next_calib_date" character varying(255), + "purchase_date" character varying(255), + "remark" character varying(255), + "return_date" character varying(255), + "serial_no" character varying(255), + "spec" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sv_equipment_ledger_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_equipment_ledger_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_equipment_ledger_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_equipment_ledger_id_seq" OWNED BY "public"."sv_equipment_ledger"."id"; + + +-- +-- Name: sv_hidden_work; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_hidden_work" ( + "image_count" integer NOT NULL, + "require_image" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "notice_id" bigint, + "supervision_project_id" bigint, + "actual_date" character varying(255), + "category" character varying(255), + "code" character varying(255), + "constructor" character varying(255), + "image_refs" character varying(255), + "inspector" character varying(255), + "location" character varying(255), + "opinion" character varying(255), + "plan_date" character varying(255), + "reporter" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sv_hidden_work_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_hidden_work_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_hidden_work_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_hidden_work_id_seq" OWNED BY "public"."sv_hidden_work"."id"; + + +-- +-- Name: sv_indep_claim; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_indep_claim" ( + "approved_amount" numeric(38,2) NOT NULL, + "approved_duration_days" integer, + "claim_amount" numeric(38,2) NOT NULL, + "critical_path_impact_days" integer, + "duration_impact_days" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "claim_code" character varying(255), + "claim_status" character varying(255), + "contractor" character varying(255), + "evidence_ref" character varying(255), + "incident_end_date" character varying(255), + "incident_start_date" character varying(255), + "intent_date" character varying(255), + "intent_summary" character varying(255), + "review_conclusion" character varying(255), + "review_date" character varying(255), + "reviewer" character varying(255), + "supervision_project_code" character varying(255), + "cost_impact_detail" "text", + "critical_path_impact" "text", + "incident_detail" "text", + "review_opinion" "text" +); + + +-- +-- Name: sv_indep_claim_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_indep_claim_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_indep_claim_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_indep_claim_id_seq" OWNED BY "public"."sv_indep_claim"."id"; + + +-- +-- Name: sv_material_inspect; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_material_inspect" ( + "need_retest" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "test_task_id" bigint, + "appearance" character varying(255), + "arrive_date" character varying(255), + "batch_no" character varying(255), + "cert_no" character varying(255), + "code" character varying(255), + "conclusion" character varying(255), + "exit_order_no" character varying(255), + "factory_report_no" character varying(255), + "inspector" character varying(255), + "material_name" character varying(255), + "quantity" character varying(255), + "reporter" character varying(255), + "retest_result" character varying(255), + "spec" character varying(255), + "status" character varying(255), + "supervision_project_code" character varying(255), + "supplier" character varying(255), + "test_items" character varying(255), + "test_task_no" character varying(255) +); + + +-- +-- Name: sv_material_inspect_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_material_inspect_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_material_inspect_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_material_inspect_id_seq" OWNED BY "public"."sv_material_inspect"."id"; + + +-- +-- Name: sv_monthly_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_monthly_report" ( + "closed_count" integer, + "inspect_count" integer, + "material_count" integer, + "material_reject_count" integer, + "notice_count" integer, + "paid_amount" numeric(38,2), + "pass_rate" numeric(38,2), + "problem_count" integer, + "rectify_rate" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "author" character varying(255), + "code" character varying(255), + "month" character varying(255), + "next_plan" character varying(255), + "progress_summary" character varying(255), + "publish_date" character varying(255), + "publisher" character varying(255), + "safety_summary" character varying(255), + "status" character varying(255), + "supervision_project_code" character varying(255) +); + + +-- +-- Name: sv_monthly_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_monthly_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_monthly_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_monthly_report_id_seq" OWNED BY "public"."sv_monthly_report"."id"; + + +-- +-- Name: sv_notice; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_notice" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "inspection_id" bigint, + "supervision_project_id" bigint, + "ack_by" character varying(255), + "ack_date" character varying(255), + "category" character varying(255), + "close_opinion" character varying(255), + "code" character varying(255), + "content" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "notice_type" character varying(255), + "reply" character varying(255), + "reply_date" character varying(255), + "reply_due_date" character varying(255), + "signature" character varying(255), + "status" character varying(255), + "supervision_project_code" character varying(255), + "title" character varying(255), + "to_unit" character varying(255) +); + + +-- +-- Name: sv_notice_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_notice_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_notice_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_notice_id_seq" OWNED BY "public"."sv_notice"."id"; + + +-- +-- Name: sv_open_work_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_open_work_order" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "check_date" character varying(255), + "check_items" character varying(255), + "check_opinion" character varying(255), + "checker" character varying(255), + "drawing_review_ref" character varying(255), + "failed_items" character varying(255), + "issue_date" character varying(255), + "issuer" character varying(255), + "order_no" character varying(255), + "passed_items" character varying(255), + "plan_start_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sv_open_work_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_open_work_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_open_work_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_open_work_order_id_seq" OWNED BY "public"."sv_open_work_order"."id"; + + +-- +-- Name: sv_patrol_checkpoint; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_patrol_checkpoint" ( + "seq_num" integer, + "checked_at" timestamp(6) with time zone, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "related_inspection_id" bigint, + "supervision_project_id" bigint, + "check_focus" character varying(255), + "check_status" character varying(255), + "checked_by" character varying(255), + "issue_desc" character varying(255), + "location_desc" character varying(255), + "point_name" character varying(255), + "route_name" character varying(255) +); + + +-- +-- Name: sv_patrol_checkpoint_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_patrol_checkpoint_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_patrol_checkpoint_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_patrol_checkpoint_id_seq" OWNED BY "public"."sv_patrol_checkpoint"."id"; + + +-- +-- Name: sv_patrol_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_patrol_plan" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "sv_patrol_scheme_id" bigint, + "actual_end_time" character varying(255), + "actual_start_time" character varying(255), + "assigned_inspector" character varying(255), + "key_data_record" character varying(255), + "patrol_conclusion" character varying(255), + "patrol_part" character varying(255), + "plan_code" character varying(255), + "plan_date" character varying(255), + "plan_end_time" character varying(255), + "plan_start_time" character varying(255), + "plan_status" character varying(255), + "process_name" character varying(255), + "remark" character varying(255), + "supervision_project_code" character varying(255) +); + + +-- +-- Name: sv_patrol_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_patrol_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_patrol_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_patrol_plan_id_seq" OWNED BY "public"."sv_patrol_plan"."id"; + + +-- +-- Name: sv_patrol_scheme; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_patrol_scheme" ( + "plan_count" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "key_indicators" character varying(255), + "key_processes" character varying(255), + "patrol_parts" character varying(255), + "plan_start_date" character varying(255), + "prepared_by" character varying(255), + "scheme_code" character varying(255), + "scheme_name" character varying(255), + "scheme_status" character varying(255), + "supervision_project_code" character varying(255), + "trigger_condition" character varying(255) +); + + +-- +-- Name: sv_patrol_scheme_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_patrol_scheme_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_patrol_scheme_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_patrol_scheme_id_seq" OWNED BY "public"."sv_patrol_scheme"."id"; + + +-- +-- Name: sv_personal_cert; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_personal_cert" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "cert_num" character varying(255), + "cert_type" character varying(255), + "expiry_date" character varying(255), + "issue_date" character varying(255), + "issuing_auth" character varying(255), + "person_name" character varying(255), + "remark" character varying(255), + "role_type" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sv_personal_cert_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_personal_cert_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_personal_cert_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_personal_cert_id_seq" OWNED BY "public"."sv_personal_cert"."id"; + + +-- +-- Name: sv_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_plan" ( + "locked" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "approved_date" character varying(255), + "content" character varying(255), + "discipline_scope" character varying(255), + "drafter" character varying(255), + "owner_confirm_date" character varying(255), + "owner_confirm_opinion" character varying(255), + "owner_confirm_person" character varying(255), + "plan_type" character varying(255), + "review_opinion" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "template_ref" character varying(255), + "title" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: sv_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_plan_id_seq" OWNED BY "public"."sv_plan"."id"; + + +-- +-- Name: sv_progress_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_progress_plan" ( + "alert_threshold" integer, + "alerted" boolean, + "deviation" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "code" character varying(255), + "name" character varying(255), + "plan_end" character varying(255), + "plan_start" character varying(255), + "plan_type" character varying(255), + "review_opinion" character varying(255), + "reviewer" character varying(255), + "status" character varying(255), + "submit_unit" character varying(255), + "supervision_project_code" character varying(255) +); + + +-- +-- Name: sv_progress_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_progress_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_progress_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_progress_plan_id_seq" OWNED BY "public"."sv_progress_plan"."id"; + + +-- +-- Name: sv_progress_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_progress_task" ( + "actual_pct" integer, + "critical" boolean, + "plan_pct" integer, + "seq" integer, + "weight" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "plan_id" bigint, + "actual_end" character varying(255), + "actual_start" character varying(255), + "delay_reason" character varying(255), + "name" character varying(255), + "plan_end" character varying(255), + "plan_start" character varying(255) +); + + +-- +-- Name: sv_progress_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_progress_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_progress_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_progress_task_id_seq" OWNED BY "public"."sv_progress_task"."id"; + + +-- +-- Name: sv_qualification; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_qualification" ( + "near_expiry" boolean NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "notice_id" bigint, + "supervision_project_id" bigint, + "audited_unit" character varying(255), + "cert_name" character varying(255), + "cert_no" character varying(255), + "expiry_date" character varying(255), + "holder" character varying(255), + "inspector" character varying(255), + "opinion" character varying(255), + "qual_type" character varying(255), + "review_date" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sv_qualification_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_qualification_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_qualification_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_qualification_id_seq" OWNED BY "public"."sv_qualification"."id"; + + +-- +-- Name: sv_scheme; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_scheme" ( + "major_hazard" boolean, + "revision" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "author" character varying(255), + "category" character varying(255), + "chief_date" character varying(255), + "chief_opinion" character varying(255), + "chief_result" character varying(255), + "chief_signature" character varying(255), + "chief_supervisor" character varying(255), + "code" character varying(255), + "name" character varying(255), + "scheme_type" character varying(255), + "spec_date" character varying(255), + "spec_opinion" character varying(255), + "spec_result" character varying(255), + "spec_supervisor" character varying(255), + "status" character varying(255), + "submit_date" character varying(255), + "submit_unit" character varying(255), + "supervision_project_code" character varying(255) +); + + +-- +-- Name: sv_scheme_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_scheme_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_scheme_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_scheme_id_seq" OWNED BY "public"."sv_scheme"."id"; + + +-- +-- Name: sv_sequence_inspect; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_sequence_inspect" ( + "record_generated" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "accept_date" character varying(255), + "applicant" character varying(255), + "apply_date" character varying(255), + "check_content" character varying(255), + "check_date" character varying(255), + "conclusion" character varying(255), + "conclusion_remark" character varying(255), + "inspect_level" character varying(255), + "inspector" character varying(255), + "location" character varying(255), + "part_name" character varying(255), + "photo_refs" character varying(255), + "project_code" character varying(255), + "record_no" character varying(255), + "rectify_notice_no" character varying(255), + "self_check_record" character varying(255), + "seq_order_no" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: sv_sequence_inspect_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_sequence_inspect_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_sequence_inspect_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_sequence_inspect_id_seq" OWNED BY "public"."sv_sequence_inspect"."id"; + + +-- +-- Name: sv_survey_verify; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sv_survey_verify" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "supervision_project_id" bigint, + "image_index_json" character varying(4000), + "actual_deviation" character varying(255), + "allowed_deviation" character varying(255), + "location" character varying(255), + "problem_desc" character varying(255), + "rectify_date" character varying(255), + "rectify_req" character varying(255), + "remark" character varying(255), + "result" character varying(255), + "status" character varying(255), + "surveyor_name" character varying(255), + "verifier_name" character varying(255), + "verify_code" character varying(255), + "verify_date" character varying(255), + "verify_type" character varying(255) +); + + +-- +-- Name: sv_survey_verify_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sv_survey_verify_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sv_survey_verify_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sv_survey_verify_id_seq" OWNED BY "public"."sv_survey_verify"."id"; + + +-- +-- Name: sys_dept; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sys_dept" ( + "sort_no" integer, + "id" bigint NOT NULL, + "parent_id" bigint, + "name" character varying(255) NOT NULL +); + + +-- +-- Name: sys_dept_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sys_dept_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sys_dept_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sys_dept_id_seq" OWNED BY "public"."sys_dept"."id"; + + +-- +-- Name: sys_permission_node; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sys_permission_node" ( + "sort_no" integer, + "system" boolean NOT NULL, + "id" bigint NOT NULL, + "tier" character varying(8) NOT NULL, + "action" character varying(16), + "module_id" character varying(48) NOT NULL, + "page_key" character varying(96), + "label" character varying(160) NOT NULL, + "node_key" character varying(160) NOT NULL +); + + +-- +-- Name: sys_permission_node_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sys_permission_node_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sys_permission_node_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sys_permission_node_id_seq" OWNED BY "public"."sys_permission_node"."id"; + + +-- +-- Name: sys_role; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sys_role" ( + "system" boolean NOT NULL, + "id" bigint NOT NULL, + "code" character varying(255) NOT NULL, + "description" character varying(255), + "name" character varying(255) NOT NULL +); + + +-- +-- Name: sys_role_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sys_role_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sys_role_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sys_role_id_seq" OWNED BY "public"."sys_role"."id"; + + +-- +-- Name: sys_role_node; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sys_role_node" ( + "id" bigint NOT NULL, + "node_id" bigint NOT NULL, + "role_id" bigint NOT NULL, + "scope" character varying(8) +); + + +-- +-- Name: sys_role_node_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sys_role_node_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sys_role_node_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sys_role_node_id_seq" OWNED BY "public"."sys_role_node"."id"; + + +-- +-- Name: sys_user; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sys_user" ( + "enabled" boolean NOT NULL, + "dept_id" bigint, + "id" bigint NOT NULL, + "display_name" character varying(255), + "email" character varying(255), + "login_name" character varying(255) NOT NULL, + "password" character varying(255), + "phone" character varying(255), + "title" character varying(255) +); + + +-- +-- Name: sys_user_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sys_user_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sys_user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sys_user_id_seq" OWNED BY "public"."sys_user"."id"; + + +-- +-- Name: sys_user_role; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."sys_user_role" ( + "id" bigint NOT NULL, + "role_id" bigint NOT NULL, + "user_id" bigint NOT NULL +); + + +-- +-- Name: sys_user_role_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."sys_user_role_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sys_user_role_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."sys_user_role_id_seq" OWNED BY "public"."sys_user_role"."id"; + + +-- +-- Name: tax_filing; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."tax_filing" ( + "tax_amount" numeric(38,2), + "tax_base" numeric(38,2), + "tax_rate" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "code" character varying(255), + "company_subject" character varying(255), + "filing_date" character varying(255), + "owner" character varying(255), + "pay_date" character varying(255), + "period" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "tax_type" character varying(255) +); + + +-- +-- Name: tax_filing_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."tax_filing_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: tax_filing_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."tax_filing_id_seq" OWNED BY "public"."tax_filing"."id"; + + +-- +-- Name: tech_achievement; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."tech_achievement" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "rd_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "ach_type" character varying(255), + "cert_no" character varying(255), + "department" character varying(255), + "eval_level" character varying(255), + "name" character varying(255), + "owners" character varying(255), + "rd_project_name" character varying(255), + "reg_date" character varying(255), + "reg_no" character varying(255), + "status" character varying(255), + "evidence" "text" +); + + +-- +-- Name: tech_achievement_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."tech_achievement_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: tech_achievement_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."tech_achievement_id_seq" OWNED BY "public"."tech_achievement"."id"; + + +-- +-- Name: tech_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."tech_contract" ( + "tech_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "rd_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "buyer" character varying(255), + "code" character varying(255), + "contract_type" character varying(255), + "ip_asset_name" character varying(255), + "owner" character varying(255), + "project_name" character varying(255), + "rd_project_name" character varying(255), + "register_no" character varying(255), + "register_status" character varying(255), + "remark" character varying(255), + "seller" character varying(255), + "sign_date" character varying(255), + "commitment_letter" "text", + "tech_scheme" "text" +); + + +-- +-- Name: tech_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."tech_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: tech_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."tech_contract_id_seq" OWNED BY "public"."tech_contract"."id"; + + +-- +-- Name: voucher; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."voucher" ( + "amount" numeric(38,2), + "is_reversal" boolean, + "reversed" boolean, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "reversal_of" bigint, + "source_id" bigint, + "auditor" character varying(255), + "credit_account" character varying(255), + "debit_account" character varying(255), + "poster" character varying(255), + "preparer" character varying(255), + "source_type" character varying(255), + "status" character varying(255), + "summary" character varying(255), + "voucher_date" character varying(255), + "voucher_no" character varying(255) +); + + +-- +-- Name: voucher_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."voucher_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: voucher_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."voucher_id_seq" OWNED BY "public"."voucher"."id"; + + +-- +-- Name: wastewater_client; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wastewater_client" ( + "daily_volume" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "contract_no" character varying(255), + "discharge_type" character varying(255), + "industry" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "pollutant" character varying(255), + "service_status" character varying(255) +); + + +-- +-- Name: wastewater_client_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wastewater_client_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wastewater_client_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wastewater_client_id_seq" OWNED BY "public"."wastewater_client"."id"; + + +-- +-- Name: water_quality_record; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."water_quality_record" ( + "ammonia_value" double precision NOT NULL, + "cod_value" double precision NOT NULL, + "ph_value" double precision NOT NULL, + "tp_value" double precision NOT NULL, + "client_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "client_name" character varying(255), + "inspector" character varying(255), + "monitor_date" character varying(255), + "result" character varying(255) +); + + +-- +-- Name: water_quality_record_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."water_quality_record_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: water_quality_record_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."water_quality_record_id_seq" OWNED BY "public"."water_quality_record"."id"; + + +-- +-- Name: wm_application; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_application" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "method_id" bigint, + "updated_at" timestamp(6) with time zone, + "approve_doc_no" character varying(255), + "authority" character varying(255), + "deadline" character varying(255), + "level" character varying(255), + "method_name" character varying(255), + "method_no" character varying(255), + "official_status" character varying(255), + "submit_date" character varying(255), + "materials" "text", + "remark" "text" +); + + +-- +-- Name: wm_application_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_application_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_application_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_application_id_seq" OWNED BY "public"."wm_application"."id"; + + +-- +-- Name: wm_decl_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_decl_plan" ( + "budget_amount" numeric(38,2), + "done_count" integer, + "target_count" integer, + "year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "department" character varying(255), + "milestones" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "plan_type" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: wm_decl_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_decl_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_decl_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_decl_plan_id_seq" OWNED BY "public"."wm_decl_plan"."id"; + + +-- +-- Name: wm_decl_template; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_decl_template" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "authority" character varying(255), + "change_note" character varying(255), + "level" character varying(255), + "name" character varying(255), + "placeholders" character varying(255), + "required_materials" character varying(255), + "scope" character varying(255), + "status" character varying(255), + "template_type" character varying(255), + "updated_by" character varying(255), + "version" character varying(255), + "body_template" "text" +); + + +-- +-- Name: wm_decl_template_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_decl_template_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_decl_template_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_decl_template_id_seq" OWNED BY "public"."wm_decl_template"."id"; + + +-- +-- Name: wm_doc_version; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_doc_version" ( + "locked" boolean, + "version_no" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "target_id" bigint, + "attachment_url" character varying(255), + "doc_type" character varying(255), + "editor" character varying(255), + "summary" character varying(255), + "target_type" character varying(255), + "content" "text" +); + + +-- +-- Name: wm_doc_version_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_doc_version_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_doc_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_doc_version_id_seq" OWNED BY "public"."wm_doc_version"."id"; + + +-- +-- Name: wm_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_event" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "method_id" bigint, + "event_type" character varying(255), + "field" character varying(255), + "from_value" character varying(255), + "operator" character varying(255), + "to_value" character varying(255), + "note" "text" +); + + +-- +-- Name: wm_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_event_id_seq" OWNED BY "public"."wm_event"."id"; + + +-- +-- Name: wm_fee; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_fee" ( + "amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "method_id" bigint, + "payment_id" bigint, + "updated_at" timestamp(6) with time zone, + "cost_center" character varying(255), + "fee_type" character varying(255), + "method_name" character varying(255), + "method_no" character varying(255), + "occur_date" character varying(255), + "payee" character varying(255), + "registrant" character varying(255), + "remark" character varying(255), + "source" character varying(255), + "status" character varying(255), + "voucher_no" character varying(255) +); + + +-- +-- Name: wm_fee_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_fee_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_fee_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_fee_id_seq" OWNED BY "public"."wm_fee"."id"; + + +-- +-- Name: wm_gov_subsidy; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_gov_subsidy" ( + "apply_amount" numeric(38,2), + "received_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "finance_record_id" bigint, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "method_id" bigint, + "updated_at" timestamp(6) with time zone, + "doc_no" character varying(255), + "gov_level" character varying(255), + "ip_asset_no" character varying(255), + "method_no" character varying(255), + "name" character varying(255), + "received_date" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "subsidy_type" character varying(255), + "window_end" character varying(255), + "window_start" character varying(255) +); + + +-- +-- Name: wm_gov_subsidy_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_gov_subsidy_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_gov_subsidy_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_gov_subsidy_id_seq" OWNED BY "public"."wm_gov_subsidy"."id"; + + +-- +-- Name: wm_promotion; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_promotion" ( + "attendee_count" integer, + "year" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ip_asset_id" bigint, + "method_id" bigint, + "updated_at" timestamp(6) with time zone, + "activity_type" character varying(255), + "actual_date" character varying(255), + "ip_asset_name" character varying(255), + "location" character varying(255), + "materials" character varying(255), + "method_name" character varying(255), + "name" character varying(255), + "organizer" character varying(255), + "owner" character varying(255), + "plan_date" character varying(255), + "remark" character varying(255), + "status" character varying(255), + "effect_note" "text" +); + + +-- +-- Name: wm_promotion_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_promotion_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_promotion_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_promotion_id_seq" OWNED BY "public"."wm_promotion"."id"; + + +-- +-- Name: wm_review; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_review" ( + "round" integer, + "score" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "method_id" bigint, + "expert" character varying(255), + "reviewed_date" character varying(255), + "role" character varying(255), + "verdict" character varying(255), + "opinion" "text" +); + + +-- +-- Name: wm_review_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_review_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_review_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_review_id_seq" OWNED BY "public"."wm_review"."id"; + + +-- +-- Name: wm_reward; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_reward" ( + "total_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "method_id" bigint, + "payment_id" bigint, + "approve_date" character varying(255), + "approver" character varying(255), + "level" character varying(255), + "method_name" character varying(255), + "method_no" character varying(255), + "paid_date" character varying(255), + "status" character varying(255), + "allocation" "text", + "remark" "text" +); + + +-- +-- Name: wm_reward_config; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_reward_config" ( + "enabled" boolean NOT NULL, + "reward_amount" numeric(38,2), + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "category" character varying(255), + "level_or_type" character varying(255), + "remark" character varying(255), + "updated_by" character varying(255) +); + + +-- +-- Name: wm_reward_config_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_reward_config_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_reward_config_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_reward_config_id_seq" OWNED BY "public"."wm_reward_config"."id"; + + +-- +-- Name: wm_reward_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_reward_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_reward_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_reward_id_seq" OWNED BY "public"."wm_reward"."id"; + + +-- +-- Name: wm_usage; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_usage" ( + "saved_cost" numeric(38,2), + "shorten_days" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "method_id" bigint, + "project_id" bigint, + "apply_date" character varying(255), + "department" character varying(255), + "evidence" character varying(255), + "method_name" character varying(255), + "project_name" character varying(255), + "registrant" character varying(255), + "effect" "text" +); + + +-- +-- Name: wm_usage_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_usage_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_usage_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_usage_id_seq" OWNED BY "public"."wm_usage"."id"; + + +-- +-- Name: wm_work_method; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."wm_work_method" ( + "apply_count" integer, + "review_round" integer, + "total_cost" numeric(38,2), + "total_saving" numeric(38,2), + "version" integer, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "parent_id" bigint, + "patent_id" bigint, + "rd_project_id" bigint, + "updated_at" timestamp(6) with time zone, + "approve_date" character varying(255), + "approve_doc_no" character varying(255), + "cert_expire_date" character varying(255), + "cert_no" character varying(255), + "contributors" character varying(255), + "department" character varying(255), + "filing_date" character varying(255), + "level" character varying(255), + "method_no" character varying(255), + "name" character varying(255), + "owner" character varying(255), + "patent_name" character varying(255), + "rd_project_name" character varying(255), + "stage" character varying(255), + "tech_field" character varying(255), + "applicable_scope" "text", + "content_benefit" "text", + "content_env" "text", + "content_feature" "text", + "content_material" "text", + "content_principle" "text", + "content_process" "text", + "content_quality" "text", + "content_safety" "text", + "expected_benefit" "text", + "innovation" "text", + "tech_background" "text" +); + + +-- +-- Name: wm_work_method_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."wm_work_method_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: wm_work_method_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."wm_work_method_id_seq" OWNED BY "public"."wm_work_method"."id"; + + +-- +-- Name: work_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."work_order" ( + "actual_qty" double precision NOT NULL, + "plan_qty" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "drawing_link" character varying(255), + "order_no" character varying(255), + "owner" character varying(255), + "planned_date" character varying(255), + "process_route" character varying(255), + "product_name" character varying(255), + "quality_std" character varying(255), + "status" character varying(255), + "unit" character varying(255), + "workshop" character varying(255) +); + + +-- +-- Name: work_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."work_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: work_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."work_order_id_seq" OWNED BY "public"."work_order"."id"; + + +-- +-- Name: work_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."work_plan" ( + "id" bigint NOT NULL, + "owner_id" bigint, + "owner" character varying(255), + "period" character varying(255), + "status" character varying(255), + "title" character varying(255), + "content" "text" +); + + +-- +-- Name: work_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."work_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: work_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."work_plan_id_seq" OWNED BY "public"."work_plan"."id"; + + +-- +-- Name: ww_alert_rule; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_alert_rule" ( + "ammonia_limit" double precision, + "auto_close_valve" boolean, + "cod_limit" double precision, + "enabled" boolean, + "ph_max" double precision, + "ph_min" double precision, + "tp_limit" double precision, + "warn_ratio" double precision, + "client_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "client_name" character varying(255), + "owner" character varying(255) +); + + +-- +-- Name: ww_alert_rule_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_alert_rule_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_alert_rule_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_alert_rule_id_seq" OWNED BY "public"."ww_alert_rule"."id"; + + +-- +-- Name: ww_anomaly_case; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_anomaly_case" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "ref_case_id" bigint, + "unit_id" bigint, + "updated_at" timestamp(6) with time zone, + "affected_system" character varying(255), + "anomaly_type" character varying(255), + "case_code" character varying(255), + "close_date" character varying(255), + "effectiveness" character varying(255), + "handle_log" character varying(255), + "occur_date" character varying(255), + "operator" character varying(255), + "root_cause" character varying(255), + "solution" character varying(255), + "status" character varying(255), + "symptom_desc" character varying(255), + "unit_name" character varying(255) +); + + +-- +-- Name: ww_anomaly_case_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_anomaly_case_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_anomaly_case_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_anomaly_case_id_seq" OWNED BY "public"."ww_anomaly_case"."id"; + + +-- +-- Name: ww_client_attachment; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_client_attachment" ( + "client_id" bigint, + "created_at" timestamp(6) with time zone, + "file_size" bigint, + "id" bigint NOT NULL, + "uploaded_at" timestamp(6) with time zone, + "attach_type" character varying(255), + "client_name" character varying(255), + "expire_date" character varying(255), + "file_name" character varying(255), + "file_version" character varying(255), + "remark" character varying(255), + "stored_url" character varying(255), + "uploader" character varying(255) +); + + +-- +-- Name: ww_client_attachment_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_client_attachment_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_client_attachment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_client_attachment_id_seq" OWNED BY "public"."ww_client_attachment"."id"; + + +-- +-- Name: ww_discharge_bill; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_discharge_bill" ( + "actual_volume" double precision, + "amount" numeric(38,2), + "base_fee" numeric(38,2), + "billed_volume" double precision, + "cod_fee" numeric(38,2), + "cod_load" double precision, + "discount_amount" numeric(38,2), + "over_limit" boolean, + "surcharge_fee" numeric(38,2), + "client_id" bigint, + "contract_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "source_event_id" bigint, + "bill_type" character varying(255), + "client_name" character varying(255), + "code" character varying(255), + "due_date" character varying(255), + "owner" character varying(255), + "period" character varying(255), + "pricing_mode" character varying(255), + "received_date" character varying(255), + "remark" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ww_discharge_bill_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_discharge_bill_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_discharge_bill_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_discharge_bill_id_seq" OWNED BY "public"."ww_discharge_bill"."id"; + + +-- +-- Name: ww_discharge_contract; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_discharge_contract" ( + "base_price" numeric(38,2), + "cod_price" numeric(38,2), + "discount_pct" double precision, + "expire_remind_days" integer, + "min_volume" double precision, + "over_limit_surcharge" double precision, + "tier_price" numeric(38,2), + "tier_volume" double precision, + "client_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "client_name" character varying(255), + "code" character varying(255), + "end_date" character varying(255), + "owner" character varying(255), + "payment_cycle" character varying(255), + "pricing_mode" character varying(255), + "remark" character varying(255), + "start_date" character varying(255), + "status" character varying(255), + "version" character varying(255) +); + + +-- +-- Name: ww_discharge_contract_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_discharge_contract_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_discharge_contract_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_discharge_contract_id_seq" OWNED BY "public"."ww_discharge_contract"."id"; + + +-- +-- Name: ww_exceed_event; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_exceed_event" ( + "claim_amount" numeric(38,2), + "exceed_ratio" double precision, + "limit_value" double precision, + "measured_value" double precision, + "reported_epb" boolean, + "valve_action" boolean, + "claim_bill_id" bigint, + "client_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "record_id" bigint, + "client_name" character varying(255), + "code" character varying(255), + "event_date" character varying(255), + "exceed_item" character varying(255), + "handle_log" character varying(255), + "owner" character varying(255), + "severity" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ww_exceed_event_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_exceed_event_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_exceed_event_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_exceed_event_id_seq" OWNED BY "public"."ww_exceed_event"."id"; + + +-- +-- Name: ww_hazwaste_manifest; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_hazwaste_manifest" ( + "disposal_fee" numeric(38,2), + "disposal_unit_price" numeric(38,2), + "epb_synced" boolean, + "moisture" double precision, + "transfer_weight" double precision, + "weight" double precision, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "batch_no" character varying(255), + "code" character varying(255), + "disposal_method" character varying(255), + "disposed_date" character varying(255), + "driver" character varying(255), + "generate_date" character varying(255), + "gps_track" character varying(255), + "owner" character varying(255), + "receipt_file" character varying(255), + "status" character varying(255), + "storage_location" character varying(255), + "stored_date" character varying(255), + "transfer_unit" character varying(255), + "transferred_date" character varying(255), + "vehicle_no" character varying(255), + "waste_code" character varying(255), + "waste_type" character varying(255) +); + + +-- +-- Name: ww_hazwaste_manifest_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_hazwaste_manifest_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_hazwaste_manifest_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_hazwaste_manifest_id_seq" OWNED BY "public"."ww_hazwaste_manifest"."id"; + + +-- +-- Name: ww_maint_order; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_maint_order" ( + "cost" numeric(38,2), + "labor_hours" double precision, + "created_at" timestamp(6) with time zone, + "equipment_id" bigint, + "id" bigint NOT NULL, + "plan_id" bigint, + "assignee" character varying(255), + "code" character varying(255), + "description" character varying(255), + "dispatched_date" character varying(255), + "equipment_name" character varying(255), + "fault_time" character varying(255), + "finished_date" character varying(255), + "order_type" character varying(255), + "owner" character varying(255), + "photo" character varying(255), + "result" character varying(255), + "section" character varying(255), + "spare_part" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ww_maint_order_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_maint_order_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_maint_order_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_maint_order_id_seq" OWNED BY "public"."ww_maint_order"."id"; + + +-- +-- Name: ww_maint_plan; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_maint_plan" ( + "cycle_days" integer, + "cycle_hours" double precision, + "cycle_volume" double precision, + "enabled" boolean, + "created_at" timestamp(6) with time zone, + "equipment_id" bigint, + "id" bigint NOT NULL, + "code" character varying(255), + "cycle_type" character varying(255), + "equipment_name" character varying(255), + "last_date" character varying(255), + "maint_item" character varying(255), + "next_due_date" character varying(255), + "owner" character varying(255), + "section" character varying(255), + "team" character varying(255) +); + + +-- +-- Name: ww_maint_plan_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_maint_plan_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_maint_plan_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_maint_plan_id_seq" OWNED BY "public"."ww_maint_plan"."id"; + + +-- +-- Name: ww_msds_file; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_msds_file" ( + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "applicable_plant" character varying(255), + "cas_no" character varying(255), + "chem_alias" character varying(255), + "chem_name" character varying(255), + "emergency_action" character varying(255), + "file_name" character varying(255), + "file_version" character varying(255), + "haz_level" character varying(255), + "hazard_class" character varying(255), + "health_hazard" character varying(255), + "maintainer" character varying(255), + "msds_code" character varying(255), + "ppe" character varying(255), + "publish_date" character varying(255), + "remark" character varying(255), + "review_date" character varying(255), + "status" character varying(255), + "storage_req" character varying(255), + "stored_url" character varying(255), + "supplier" character varying(255) +); + + +-- +-- Name: ww_msds_file_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_msds_file_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_msds_file_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_msds_file_id_seq" OWNED BY "public"."ww_msds_file"."id"; + + +-- +-- Name: ww_process_unit; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_process_unit" ( + "design_inflow_rate" double precision NOT NULL, + "dissolved_oxygen" double precision NOT NULL, + "drug_dose" double precision NOT NULL, + "feed_pressure" double precision NOT NULL, + "inflow_rate" double precision NOT NULL, + "levelm" double precision NOT NULL, + "membrane_flux" double precision NOT NULL, + "mlss" double precision NOT NULL, + "nutrient_dose" double precision NOT NULL, + "orp" double precision NOT NULL, + "permeate_pressure" double precision NOT NULL, + "ph" double precision NOT NULL, + "recovery_rate" double precision NOT NULL, + "reuse_volume" double precision NOT NULL, + "sludge_return_ratio" double precision NOT NULL, + "srt" double precision NOT NULL, + "sv30" double precision NOT NULL, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "updated_at" timestamp(6) with time zone, + "data_source" character varying(255), + "drug_type" character varying(255), + "operator" character varying(255), + "process_section" character varying(255), + "record_time" character varying(255), + "remark" character varying(255), + "source_clients" character varying(255), + "status" character varying(255), + "unit_code" character varying(255), + "unit_name" character varying(255), + "unit_type" character varying(255) +); + + +-- +-- Name: ww_process_unit_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_process_unit_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_process_unit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_process_unit_id_seq" OWNED BY "public"."ww_process_unit"."id"; + + +-- +-- Name: ww_sampling_task; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_sampling_task" ( + "ammonia_result" double precision, + "cod_result" double precision, + "copper_result" double precision, + "cr6result" double precision, + "cyanide_result" double precision, + "nickel_result" double precision, + "ph_result" double precision, + "phenol_result" double precision, + "rpd" double precision, + "spike_recovery" double precision, + "ss_result" double precision, + "tn_result" double precision, + "total_cr_result" double precision, + "tp_result" double precision, + "zinc_result" double precision, + "client_id" bigint, + "created_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "unit_id" bigint, + "updated_at" timestamp(6) with time zone, + "actual_time" character varying(255), + "analyst" character varying(255), + "analyze_date" character varying(255), + "blank_result" character varying(255), + "client_name" character varying(255), + "exceed_items" character varying(255), + "judge_result" character varying(255), + "plan_date" character varying(255), + "rectify_ref" character varying(255), + "remark" character varying(255), + "sample_code" character varying(255), + "sample_point" character varying(255), + "sample_type" character varying(255), + "sampler" character varying(255), + "standard" character varying(255), + "status" character varying(255) +); + + +-- +-- Name: ww_sampling_task_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_sampling_task_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_sampling_task_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_sampling_task_id_seq" OWNED BY "public"."ww_sampling_task"."id"; + + +-- +-- Name: ww_service_report; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE "public"."ww_service_report" ( + "actual_volume" double precision NOT NULL, + "avg_ammonia_in" double precision NOT NULL, + "avg_ammonia_out" double precision NOT NULL, + "avg_cod_in" double precision NOT NULL, + "avg_cod_out" double precision NOT NULL, + "cod_removal_rate" double precision NOT NULL, + "compliance_rate" double precision NOT NULL, + "contract_volume" double precision NOT NULL, + "exceed_count" integer NOT NULL, + "exceed_event_count" integer NOT NULL, + "minimum_volume" double precision NOT NULL, + "penalty_fee" numeric(38,2), + "total_fee" numeric(38,2), + "treatment_fee" numeric(38,2), + "client_id" bigint, + "created_at" timestamp(6) with time zone, + "generated_at" timestamp(6) with time zone, + "id" bigint NOT NULL, + "pushed_at" timestamp(6) with time zone, + "updated_at" timestamp(6) with time zone, + "anomaly_summary" character varying(255), + "archive_ref" character varying(255), + "bill_ref" character varying(255), + "client_name" character varying(255), + "created_by" character varying(255), + "exceed_summary" character varying(255), + "period_end" character varying(255), + "period_start" character varying(255), + "push_channel" character varying(255), + "push_recipient" character varying(255), + "push_status" character varying(255), + "report_code" character varying(255), + "report_period" character varying(255), + "report_type" character varying(255) +); + + +-- +-- Name: ww_service_report_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE "public"."ww_service_report_id_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: ww_service_report_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE "public"."ww_service_report_id_seq" OWNED BY "public"."ww_service_report"."id"; + + +-- +-- Name: account id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."account" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."account_id_seq"'::"regclass"); + + +-- +-- Name: admin_access_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_access_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_access_record_id_seq"'::"regclass"); + + +-- +-- Name: admin_ai_action_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_ai_action_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_ai_action_log_id_seq"'::"regclass"); + + +-- +-- Name: admin_cctv_device id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cctv_device" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_cctv_device_id_seq"'::"regclass"); + + +-- +-- Name: admin_cleaning_schedule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cleaning_schedule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_cleaning_schedule_id_seq"'::"regclass"); + + +-- +-- Name: admin_cleaning_supply id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cleaning_supply" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_cleaning_supply_id_seq"'::"regclass"); + + +-- +-- Name: admin_cleaning_supply_move id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cleaning_supply_move" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_cleaning_supply_move_id_seq"'::"regclass"); + + +-- +-- Name: admin_conference_material id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_conference_material" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_conference_material_id_seq"'::"regclass"); + + +-- +-- Name: admin_conference_staff id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_conference_staff" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_conference_staff_id_seq"'::"regclass"); + + +-- +-- Name: admin_doc_template id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_doc_template" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_doc_template_id_seq"'::"regclass"); + + +-- +-- Name: admin_dorm_checkin id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_checkin" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_dorm_checkin_id_seq"'::"regclass"); + + +-- +-- Name: admin_dorm_inspection id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_inspection" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_dorm_inspection_id_seq"'::"regclass"); + + +-- +-- Name: admin_dorm_repair id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_repair" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_dorm_repair_id_seq"'::"regclass"); + + +-- +-- Name: admin_dorm_room id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_room" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_dorm_room_id_seq"'::"regclass"); + + +-- +-- Name: admin_dorm_utility id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_utility" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_dorm_utility_id_seq"'::"regclass"); + + +-- +-- Name: admin_equip_setup id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_equip_setup" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_equip_setup_id_seq"'::"regclass"); + + +-- +-- Name: admin_express id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_express" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_express_id_seq"'::"regclass"); + + +-- +-- Name: admin_footage_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_footage_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_footage_request_id_seq"'::"regclass"); + + +-- +-- Name: admin_greenery id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_greenery" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_greenery_id_seq"'::"regclass"); + + +-- +-- Name: admin_hygiene_inspection id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_hygiene_inspection" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_hygiene_inspection_id_seq"'::"regclass"); + + +-- +-- Name: admin_official_doc_tpl id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_official_doc_tpl" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_official_doc_tpl_id_seq"'::"regclass"); + + +-- +-- Name: admin_patrol_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_patrol_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_patrol_log_id_seq"'::"regclass"); + + +-- +-- Name: admin_patrol_point id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_patrol_point" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_patrol_point_id_seq"'::"regclass"); + + +-- +-- Name: admin_procurement_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_procurement_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_procurement_request_id_seq"'::"regclass"); + + +-- +-- Name: admin_quiz_question id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_quiz_question" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_quiz_question_id_seq"'::"regclass"); + + +-- +-- Name: admin_quota id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_quota" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_quota_id_seq"'::"regclass"); + + +-- +-- Name: admin_reception id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_reception" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_reception_id_seq"'::"regclass"); + + +-- +-- Name: admin_recurring_booking id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_recurring_booking" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_recurring_booking_id_seq"'::"regclass"); + + +-- +-- Name: admin_requisition id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_requisition" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_requisition_id_seq"'::"regclass"); + + +-- +-- Name: admin_security_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_security_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_security_event_id_seq"'::"regclass"); + + +-- +-- Name: admin_shuttle_bus id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_shuttle_bus" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_shuttle_bus_id_seq"'::"regclass"); + + +-- +-- Name: admin_shuttle_passenger id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_shuttle_passenger" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_shuttle_passenger_id_seq"'::"regclass"); + + +-- +-- Name: admin_stock_move id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_stock_move" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_stock_move_id_seq"'::"regclass"); + + +-- +-- Name: admin_supply id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_supply" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_supply_id_seq"'::"regclass"); + + +-- +-- Name: admin_training_course id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_training_course" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_training_course_id_seq"'::"regclass"); + + +-- +-- Name: admin_training_enrollment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_training_enrollment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_training_enrollment_id_seq"'::"regclass"); + + +-- +-- Name: admin_vehicle id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_vehicle" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_vehicle_id_seq"'::"regclass"); + + +-- +-- Name: admin_vehicle_dispatch id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_vehicle_dispatch" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_vehicle_dispatch_id_seq"'::"regclass"); + + +-- +-- Name: admin_vehicle_violation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_vehicle_violation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_vehicle_violation_id_seq"'::"regclass"); + + +-- +-- Name: admin_visitor id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_visitor" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."admin_visitor_id_seq"'::"regclass"); + + +-- +-- Name: announcement id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."announcement" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."announcement_id_seq"'::"regclass"); + + +-- +-- Name: annual_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."annual_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."annual_report_id_seq"'::"regclass"); + + +-- +-- Name: ar_ap_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ar_ap_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ar_ap_item_id_seq"'::"regclass"); + + +-- +-- Name: archive id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_id_seq"'::"regclass"); + + +-- +-- Name: archive_access_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_access_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_access_log_id_seq"'::"regclass"); + + +-- +-- Name: archive_acl id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_acl" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_acl_id_seq"'::"regclass"); + + +-- +-- Name: archive_backup_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_backup_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_backup_log_id_seq"'::"regclass"); + + +-- +-- Name: archive_borrow id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_borrow" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_borrow_id_seq"'::"regclass"); + + +-- +-- Name: archive_category id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_category" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_category_id_seq"'::"regclass"); + + +-- +-- Name: archive_comment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_comment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_comment_id_seq"'::"regclass"); + + +-- +-- Name: archive_destruction id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_destruction" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_destruction_id_seq"'::"regclass"); + + +-- +-- Name: archive_drill_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_drill_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_drill_record_id_seq"'::"regclass"); + + +-- +-- Name: archive_hash_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_hash_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_hash_record_id_seq"'::"regclass"); + + +-- +-- Name: archive_physical_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_physical_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_physical_item_id_seq"'::"regclass"); + + +-- +-- Name: archive_repair_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_repair_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_repair_record_id_seq"'::"regclass"); + + +-- +-- Name: archive_reservation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_reservation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_reservation_id_seq"'::"regclass"); + + +-- +-- Name: archive_submission id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_submission" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_submission_id_seq"'::"regclass"); + + +-- +-- Name: archive_vault id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_vault" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_vault_id_seq"'::"regclass"); + + +-- +-- Name: archive_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."archive_version_id_seq"'::"regclass"); + + +-- +-- Name: audit_annual_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_annual_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_annual_plan_id_seq"'::"regclass"); + + +-- +-- Name: audit_archive id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_archive" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_archive_id_seq"'::"regclass"); + + +-- +-- Name: audit_auditor_profile id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_auditor_profile" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_auditor_profile_id_seq"'::"regclass"); + + +-- +-- Name: audit_continuous_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_continuous_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_continuous_log_id_seq"'::"regclass"); + + +-- +-- Name: audit_economic_responsibility id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_economic_responsibility" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_economic_responsibility_id_seq"'::"regclass"); + + +-- +-- Name: audit_evidence id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_evidence" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_evidence_id_seq"'::"regclass"); + + +-- +-- Name: audit_finding id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_finding" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_finding_id_seq"'::"regclass"); + + +-- +-- Name: audit_fraud_invest_note id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_fraud_invest_note" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_fraud_invest_note_id_seq"'::"regclass"); + + +-- +-- Name: audit_fraud_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_fraud_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_fraud_report_id_seq"'::"regclass"); + + +-- +-- Name: audit_material_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_material_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_material_request_id_seq"'::"regclass"); + + +-- +-- Name: audit_monitor_exception id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_monitor_exception" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_monitor_exception_id_seq"'::"regclass"); + + +-- +-- Name: audit_monitor_rule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_monitor_rule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_monitor_rule_id_seq"'::"regclass"); + + +-- +-- Name: audit_notice id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_notice" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_notice_id_seq"'::"regclass"); + + +-- +-- Name: audit_procedure id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_procedure" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_procedure_id_seq"'::"regclass"); + + +-- +-- Name: audit_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_project_id_seq"'::"regclass"); + + +-- +-- Name: audit_quality_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_quality_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_quality_review_id_seq"'::"regclass"); + + +-- +-- Name: audit_rectification id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_rectification" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_rectification_id_seq"'::"regclass"); + + +-- +-- Name: audit_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_report_id_seq"'::"regclass"); + + +-- +-- Name: audit_risk_assessment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_risk_assessment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_risk_assessment_id_seq"'::"regclass"); + + +-- +-- Name: audit_work_paper id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_work_paper" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."audit_work_paper_id_seq"'::"regclass"); + + +-- +-- Name: automation_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."automation_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."automation_log_id_seq"'::"regclass"); + + +-- +-- Name: bank_account id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bank_account" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bank_account_id_seq"'::"regclass"); + + +-- +-- Name: bid id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_id_seq"'::"regclass"); + + +-- +-- Name: bid_bond id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_bond" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_bond_id_seq"'::"regclass"); + + +-- +-- Name: bid_decision id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_decision" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_decision_id_seq"'::"regclass"); + + +-- +-- Name: bid_deposit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_deposit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_deposit_id_seq"'::"regclass"); + + +-- +-- Name: bid_doc_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_doc_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_doc_version_id_seq"'::"regclass"); + + +-- +-- Name: bid_knowledge_entry id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_knowledge_entry" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_knowledge_entry_id_seq"'::"regclass"); + + +-- +-- Name: bid_loss_case id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_loss_case" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_loss_case_id_seq"'::"regclass"); + + +-- +-- Name: bid_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_task_id_seq"'::"regclass"); + + +-- +-- Name: bid_tender_collab id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_tender_collab" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_tender_collab_id_seq"'::"regclass"); + + +-- +-- Name: bid_tender_doc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_tender_doc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bid_tender_doc_id_seq"'::"regclass"); + + +-- +-- Name: biz_budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."biz_budget_id_seq"'::"regclass"); + + +-- +-- Name: biz_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."biz_plan_id_seq"'::"regclass"); + + +-- +-- Name: biz_plan_target id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_plan_target" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."biz_plan_target_id_seq"'::"regclass"); + + +-- +-- Name: biz_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."biz_record_id_seq"'::"regclass"); + + +-- +-- Name: blog id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."blog" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."blog_id_seq"'::"regclass"); + + +-- +-- Name: bom_change_history id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_change_history" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bom_change_history_id_seq"'::"regclass"); + + +-- +-- Name: bom_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bom_item_id_seq"'::"regclass"); + + +-- +-- Name: bom_signoff id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_signoff" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bom_signoff_id_seq"'::"regclass"); + + +-- +-- Name: bom_variance_detail id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_variance_detail" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."bom_variance_detail_id_seq"'::"regclass"); + + +-- +-- Name: branch_asset id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_asset" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."branch_asset_id_seq"'::"regclass"); + + +-- +-- Name: branch_budget_line id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_budget_line" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."branch_budget_line_id_seq"'::"regclass"); + + +-- +-- Name: branch_cost_entry id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_cost_entry" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."branch_cost_entry_id_seq"'::"regclass"); + + +-- +-- Name: branch_license id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_license" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."branch_license_id_seq"'::"regclass"); + + +-- +-- Name: brand_asset id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_asset" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_asset_id_seq"'::"regclass"); + + +-- +-- Name: brand_collab_push id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_collab_push" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_collab_push_id_seq"'::"regclass"); + + +-- +-- Name: brand_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_event_id_seq"'::"regclass"); + + +-- +-- Name: brand_event_material id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_event_material" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_event_material_id_seq"'::"regclass"); + + +-- +-- Name: brand_expense id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_expense" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_expense_id_seq"'::"regclass"); + + +-- +-- Name: brand_honor id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_honor" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_honor_id_seq"'::"regclass"); + + +-- +-- Name: brand_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_plan_id_seq"'::"regclass"); + + +-- +-- Name: brand_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_project_id_seq"'::"regclass"); + + +-- +-- Name: brand_supplier id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_supplier" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."brand_supplier_id_seq"'::"regclass"); + + +-- +-- Name: budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."budget_id_seq"'::"regclass"); + + +-- +-- Name: canteen_meal_cost id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."canteen_meal_cost" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."canteen_meal_cost_id_seq"'::"regclass"); + + +-- +-- Name: canteen_menu id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."canteen_menu" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."canteen_menu_id_seq"'::"regclass"); + + +-- +-- Name: canteen_sanitation_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."canteen_sanitation_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."canteen_sanitation_record_id_seq"'::"regclass"); + + +-- +-- Name: certification id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."certification" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."certification_id_seq"'::"regclass"); + + +-- +-- Name: channel_publish_history id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."channel_publish_history" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."channel_publish_history_id_seq"'::"regclass"); + + +-- +-- Name: chronicle_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."chronicle_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."chronicle_event_id_seq"'::"regclass"); + + +-- +-- Name: collab_doc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."collab_doc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."collab_doc_id_seq"'::"regclass"); + + +-- +-- Name: collab_doc_update id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."collab_doc_update" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."collab_doc_update_id_seq"'::"regclass"); + + +-- +-- Name: company_subject id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."company_subject" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."company_subject_id_seq"'::"regclass"); + + +-- +-- Name: competitor_ip id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."competitor_ip" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."competitor_ip_id_seq"'::"regclass"); + + +-- +-- Name: completion_acceptance id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."completion_acceptance" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."completion_acceptance_id_seq"'::"regclass"); + + +-- +-- Name: compliance_evaluation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."compliance_evaluation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."compliance_evaluation_id_seq"'::"regclass"); + + +-- +-- Name: content_piece id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."content_piece" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."content_piece_id_seq"'::"regclass"); + + +-- +-- Name: content_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."content_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."content_review_id_seq"'::"regclass"); + + +-- +-- Name: content_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."content_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."content_task_id_seq"'::"regclass"); + + +-- +-- Name: contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."contract_id_seq"'::"regclass"); + + +-- +-- Name: contract_budget_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_budget_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."contract_budget_review_id_seq"'::"regclass"); + + +-- +-- Name: contract_change id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_change" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."contract_change_id_seq"'::"regclass"); + + +-- +-- Name: contract_esign id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_esign" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."contract_esign_id_seq"'::"regclass"); + + +-- +-- Name: contract_milestone id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_milestone" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."contract_milestone_id_seq"'::"regclass"); + + +-- +-- Name: contract_template id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_template" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."contract_template_id_seq"'::"regclass"); + + +-- +-- Name: cost_adjust_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_adjust_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cost_adjust_log_id_seq"'::"regclass"); + + +-- +-- Name: cost_center id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_center" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cost_center_id_seq"'::"regclass"); + + +-- +-- Name: cost_hr_dept_labor_rate id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_hr_dept_labor_rate" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cost_hr_dept_labor_rate_id_seq"'::"regclass"); + + +-- +-- Name: cost_inv_project_link id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_inv_project_link" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cost_inv_project_link_id_seq"'::"regclass"); + + +-- +-- Name: cost_procurement_bid id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_procurement_bid" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cost_procurement_bid_id_seq"'::"regclass"); + + +-- +-- Name: cost_purchase_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_purchase_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cost_purchase_order_id_seq"'::"regclass"); + + +-- +-- Name: cost_reduction_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_reduction_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cost_reduction_item_id_seq"'::"regclass"); + + +-- +-- Name: countersign_vote id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."countersign_vote" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."countersign_vote_id_seq"'::"regclass"); + + +-- +-- Name: cpc_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cpc_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."cpc_version_id_seq"'::"regclass"); + + +-- +-- Name: crawl_job id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crawl_job" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crawl_job_id_seq"'::"regclass"); + + +-- +-- Name: crawl_source id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crawl_source" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crawl_source_id_seq"'::"regclass"); + + +-- +-- Name: crisis_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crisis_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crisis_plan_id_seq"'::"regclass"); + + +-- +-- Name: crm_bid_quote_detail id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_bid_quote_detail" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_bid_quote_detail_id_seq"'::"regclass"); + + +-- +-- Name: crm_branch_lease id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_branch_lease" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_branch_lease_id_seq"'::"regclass"); + + +-- +-- Name: crm_branch_petition id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_branch_petition" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_branch_petition_id_seq"'::"regclass"); + + +-- +-- Name: crm_competitor id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_competitor" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_competitor_id_seq"'::"regclass"); + + +-- +-- Name: crm_contract_approval_step id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_contract_approval_step" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_contract_approval_step_id_seq"'::"regclass"); + + +-- +-- Name: crm_customer_contact id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_customer_contact" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_customer_contact_id_seq"'::"regclass"); + + +-- +-- Name: crm_daily_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_daily_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_daily_report_id_seq"'::"regclass"); + + +-- +-- Name: crm_doc_receipt id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_doc_receipt" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_doc_receipt_id_seq"'::"regclass"); + + +-- +-- Name: crm_imprest_fund id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_imprest_fund" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_imprest_fund_id_seq"'::"regclass"); + + +-- +-- Name: crm_opp_stage_config id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_opp_stage_config" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_opp_stage_config_id_seq"'::"regclass"); + + +-- +-- Name: crm_petty_cash id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_petty_cash" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_petty_cash_id_seq"'::"regclass"); + + +-- +-- Name: crm_satisfaction_survey id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_satisfaction_survey" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_satisfaction_survey_id_seq"'::"regclass"); + + +-- +-- Name: crm_talk_script id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_talk_script" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_talk_script_id_seq"'::"regclass"); + + +-- +-- Name: crm_wbs_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_wbs_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."crm_wbs_task_id_seq"'::"regclass"); + + +-- +-- Name: csl_archive_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_archive_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_archive_item_id_seq"'::"regclass"); + + +-- +-- Name: csl_bid_link id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_bid_link" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_bid_link_id_seq"'::"regclass"); + + +-- +-- Name: csl_budget_line id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_budget_line" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_budget_line_id_seq"'::"regclass"); + + +-- +-- Name: csl_chapter_comment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_chapter_comment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_chapter_comment_id_seq"'::"regclass"); + + +-- +-- Name: csl_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_contract_id_seq"'::"regclass"); + + +-- +-- Name: csl_customer id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_customer" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_customer_id_seq"'::"regclass"); + + +-- +-- Name: csl_entity_history id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_entity_history" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_entity_history_id_seq"'::"regclass"); + + +-- +-- Name: csl_estimate_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_estimate_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_estimate_item_id_seq"'::"regclass"); + + +-- +-- Name: csl_expert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_expert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_expert_id_seq"'::"regclass"); + + +-- +-- Name: csl_expert_score id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_expert_score" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_expert_score_id_seq"'::"regclass"); + + +-- +-- Name: csl_integral_ledger id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_integral_ledger" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_integral_ledger_id_seq"'::"regclass"); + + +-- +-- Name: csl_operation_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_operation_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_operation_log_id_seq"'::"regclass"); + + +-- +-- Name: csl_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_project_id_seq"'::"regclass"); + + +-- +-- Name: csl_project_cost id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_project_cost" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_project_cost_id_seq"'::"regclass"); + + +-- +-- Name: csl_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_report_id_seq"'::"regclass"); + + +-- +-- Name: csl_report_chapter id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_report_chapter" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_report_chapter_id_seq"'::"regclass"); + + +-- +-- Name: csl_report_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_report_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_report_review_id_seq"'::"regclass"); + + +-- +-- Name: csl_review_assignment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_review_assignment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_review_assignment_id_seq"'::"regclass"); + + +-- +-- Name: csl_risk_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_risk_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_risk_log_id_seq"'::"regclass"); + + +-- +-- Name: csl_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_task_id_seq"'::"regclass"); + + +-- +-- Name: csl_team_schedule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_team_schedule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_team_schedule_id_seq"'::"regclass"); + + +-- +-- Name: csl_timesheet id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_timesheet" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."csl_timesheet_id_seq"'::"regclass"); + + +-- +-- Name: culture_archive id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_archive" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_archive_id_seq"'::"regclass"); + + +-- +-- Name: culture_award id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_award" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_award_id_seq"'::"regclass"); + + +-- +-- Name: culture_award_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_award_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_award_review_id_seq"'::"regclass"); + + +-- +-- Name: culture_case id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_case" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_case_id_seq"'::"regclass"); + + +-- +-- Name: culture_goal id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_goal" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_goal_id_seq"'::"regclass"); + + +-- +-- Name: culture_improve id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_improve" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_improve_id_seq"'::"regclass"); + + +-- +-- Name: culture_material id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_material" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_material_id_seq"'::"regclass"); + + +-- +-- Name: culture_material_download id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_material_download" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_material_download_id_seq"'::"regclass"); + + +-- +-- Name: culture_monthly_briefing id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_monthly_briefing" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_monthly_briefing_id_seq"'::"regclass"); + + +-- +-- Name: culture_scheme id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_scheme" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_scheme_id_seq"'::"regclass"); + + +-- +-- Name: culture_story id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_story" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_story_id_seq"'::"regclass"); + + +-- +-- Name: culture_survey id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_survey" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_survey_id_seq"'::"regclass"); + + +-- +-- Name: culture_survey_response id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_survey_response" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."culture_survey_response_id_seq"'::"regclass"); + + +-- +-- Name: customer id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."customer_id_seq"'::"regclass"); + + +-- +-- Name: customer_complaint id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer_complaint" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."customer_complaint_id_seq"'::"regclass"); + + +-- +-- Name: customer_credit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer_credit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."customer_credit_id_seq"'::"regclass"); + + +-- +-- Name: customer_visit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer_visit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."customer_visit_id_seq"'::"regclass"); + + +-- +-- Name: data_sync_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."data_sync_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."data_sync_log_id_seq"'::"regclass"); + + +-- +-- Name: decl_acceptance id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_acceptance" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_acceptance_id_seq"'::"regclass"); + + +-- +-- Name: decl_achievement id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_achievement" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_achievement_id_seq"'::"regclass"); + + +-- +-- Name: decl_audit_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_audit_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_audit_report_id_seq"'::"regclass"); + + +-- +-- Name: decl_evidence_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_evidence_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_evidence_item_id_seq"'::"regclass"); + + +-- +-- Name: decl_failure_case id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_failure_case" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_failure_case_id_seq"'::"regclass"); + + +-- +-- Name: decl_material_link id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_material_link" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_material_link_id_seq"'::"regclass"); + + +-- +-- Name: decl_policy_subscription id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_policy_subscription" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_policy_subscription_id_seq"'::"regclass"); + + +-- +-- Name: decl_project_assignment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_project_assignment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_project_assignment_id_seq"'::"regclass"); + + +-- +-- Name: decl_push_device id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_push_device" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_push_device_id_seq"'::"regclass"); + + +-- +-- Name: decl_submission id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_submission" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."decl_submission_id_seq"'::"regclass"); + + +-- +-- Name: declaration id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."declaration" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."declaration_id_seq"'::"regclass"); + + +-- +-- Name: declaration_step id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."declaration_step" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."declaration_step_id_seq"'::"regclass"); + + +-- +-- Name: declaration_template id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."declaration_template" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."declaration_template_id_seq"'::"regclass"); + + +-- +-- Name: delegation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."delegation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."delegation_id_seq"'::"regclass"); + + +-- +-- Name: design_annotation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_annotation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_annotation_id_seq"'::"regclass"); + + +-- +-- Name: design_audit_trail id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_audit_trail" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_audit_trail_id_seq"'::"regclass"); + + +-- +-- Name: design_change id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_change" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_change_id_seq"'::"regclass"); + + +-- +-- Name: design_change_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_change_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_change_order_id_seq"'::"regclass"); + + +-- +-- Name: design_clash id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_clash" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_clash_id_seq"'::"regclass"); + + +-- +-- Name: design_distribution id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_distribution" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_distribution_id_seq"'::"regclass"); + + +-- +-- Name: design_doc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_doc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_doc_id_seq"'::"regclass"); + + +-- +-- Name: design_drawing id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_drawing" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_drawing_id_seq"'::"regclass"); + + +-- +-- Name: design_drawing_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_drawing_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_drawing_version_id_seq"'::"regclass"); + + +-- +-- Name: design_external_access id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_external_access" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_external_access_id_seq"'::"regclass"); + + +-- +-- Name: design_external_portal id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_external_portal" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_external_portal_id_seq"'::"regclass"); + + +-- +-- Name: design_handoff id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_handoff" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_handoff_id_seq"'::"regclass"); + + +-- +-- Name: design_interface id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_interface" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_interface_id_seq"'::"regclass"); + + +-- +-- Name: design_knowledge id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_knowledge" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_knowledge_id_seq"'::"regclass"); + + +-- +-- Name: design_metric id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_metric" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_metric_id_seq"'::"regclass"); + + +-- +-- Name: design_output_share id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_output_share" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_output_share_id_seq"'::"regclass"); + + +-- +-- Name: design_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_project_id_seq"'::"regclass"); + + +-- +-- Name: design_reservation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_reservation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_reservation_id_seq"'::"regclass"); + + +-- +-- Name: design_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."design_task_id_seq"'::"regclass"); + + +-- +-- Name: designer_capability id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."designer_capability" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."designer_capability_id_seq"'::"regclass"); + + +-- +-- Name: discussion id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."discussion" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."discussion_id_seq"'::"regclass"); + + +-- +-- Name: dish_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."dish_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."dish_review_id_seq"'::"regclass"); + + +-- +-- Name: doc_file id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."doc_file" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."doc_file_id_seq"'::"regclass"); + + +-- +-- Name: doc_folder id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."doc_folder" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."doc_folder_id_seq"'::"regclass"); + + +-- +-- Name: ehs_audit_prep_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_audit_prep_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_audit_prep_task_id_seq"'::"regclass"); + + +-- +-- Name: ehs_capa id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_capa" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_capa_id_seq"'::"regclass"); + + +-- +-- Name: ehs_check_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_check_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_check_plan_id_seq"'::"regclass"); + + +-- +-- Name: ehs_contractor_edu id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_contractor_edu" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_contractor_edu_id_seq"'::"regclass"); + + +-- +-- Name: ehs_env_tax_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_env_tax_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_env_tax_record_id_seq"'::"regclass"); + + +-- +-- Name: ehs_hazard id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_hazard" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_hazard_id_seq"'::"regclass"); + + +-- +-- Name: ehs_incident id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_incident" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_incident_id_seq"'::"regclass"); + + +-- +-- Name: ehs_objective id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_objective" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_objective_id_seq"'::"regclass"); + + +-- +-- Name: ehs_special_equip id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_special_equip" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_special_equip_id_seq"'::"regclass"); + + +-- +-- Name: ehs_supply id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_supply" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_supply_id_seq"'::"regclass"); + + +-- +-- Name: ehs_work_permit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_work_permit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ehs_work_permit_id_seq"'::"regclass"); + + +-- +-- Name: emg_drill id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."emg_drill" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."emg_drill_id_seq"'::"regclass"); + + +-- +-- Name: emp_share_material id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."emp_share_material" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."emp_share_material_id_seq"'::"regclass"); + + +-- +-- Name: env_compli_obligation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_compli_obligation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."env_compli_obligation_id_seq"'::"regclass"); + + +-- +-- Name: env_discharge_permit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_discharge_permit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."env_discharge_permit_id_seq"'::"regclass"); + + +-- +-- Name: env_monitor_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_monitor_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."env_monitor_record_id_seq"'::"regclass"); + + +-- +-- Name: env_risk_source id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_risk_source" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."env_risk_source_id_seq"'::"regclass"); + + +-- +-- Name: env_waste_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_waste_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."env_waste_record_id_seq"'::"regclass"); + + +-- +-- Name: event_checkin id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."event_checkin" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."event_checkin_id_seq"'::"regclass"); + + +-- +-- Name: event_guest id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."event_guest" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."event_guest_id_seq"'::"regclass"); + + +-- +-- Name: event_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."event_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."event_task_id_seq"'::"regclass"); + + +-- +-- Name: expense_claim id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."expense_claim" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."expense_claim_id_seq"'::"regclass"); + + +-- +-- Name: expert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."expert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."expert_id_seq"'::"regclass"); + + +-- +-- Name: ext_audit_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ext_audit_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ext_audit_plan_id_seq"'::"regclass"); + + +-- +-- Name: ext_system_config id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ext_system_config" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ext_system_config_id_seq"'::"regclass"); + + +-- +-- Name: favorite id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."favorite" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."favorite_id_seq"'::"regclass"); + + +-- +-- Name: feed id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."feed" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."feed_id_seq"'::"regclass"); + + +-- +-- Name: feed_like id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."feed_like" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."feed_like_id_seq"'::"regclass"); + + +-- +-- Name: fert_accounting_voucher id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_accounting_voucher" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_accounting_voucher_id_seq"'::"regclass"); + + +-- +-- Name: fert_agri_service id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_agri_service" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_agri_service_id_seq"'::"regclass"); + + +-- +-- Name: fert_batch_cost id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_batch_cost" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_batch_cost_id_seq"'::"regclass"); + + +-- +-- Name: fert_customer_profile id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_customer_profile" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_customer_profile_id_seq"'::"regclass"); + + +-- +-- Name: fert_delivery id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_delivery" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_delivery_id_seq"'::"regclass"); + + +-- +-- Name: fert_energy_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_energy_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_energy_log_id_seq"'::"regclass"); + + +-- +-- Name: fert_gas_emission id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_gas_emission" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_gas_emission_id_seq"'::"regclass"); + + +-- +-- Name: fert_invoice_ledger id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_invoice_ledger" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_invoice_ledger_id_seq"'::"regclass"); + + +-- +-- Name: fert_mps id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_mps" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_mps_id_seq"'::"regclass"); + + +-- +-- Name: fert_occ_health id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_occ_health" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_occ_health_id_seq"'::"regclass"); + + +-- +-- Name: fert_pack_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_pack_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_pack_order_id_seq"'::"regclass"); + + +-- +-- Name: fert_pkg_material_ledger id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_pkg_material_ledger" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_pkg_material_ledger_id_seq"'::"regclass"); + + +-- +-- Name: fert_process_qc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_process_qc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_process_qc_id_seq"'::"regclass"); + + +-- +-- Name: fert_procure_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_procure_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_procure_plan_id_seq"'::"regclass"); + + +-- +-- Name: fert_product_qc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_product_qc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_product_qc_id_seq"'::"regclass"); + + +-- +-- Name: fert_qc_standard id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_qc_standard" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_qc_standard_id_seq"'::"regclass"); + + +-- +-- Name: fert_raw_material_catalog id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_raw_material_catalog" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_raw_material_catalog_id_seq"'::"regclass"); + + +-- +-- Name: fert_raw_material_qc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_raw_material_qc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_raw_material_qc_id_seq"'::"regclass"); + + +-- +-- Name: fert_safety_patrol_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_safety_patrol_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_safety_patrol_log_id_seq"'::"regclass"); + + +-- +-- Name: fert_safety_patrol_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_safety_patrol_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_safety_patrol_plan_id_seq"'::"regclass"); + + +-- +-- Name: fert_sales_line id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_sales_line" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_sales_line_id_seq"'::"regclass"); + + +-- +-- Name: fert_sales_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_sales_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_sales_order_id_seq"'::"regclass"); + + +-- +-- Name: fert_solid_waste id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_solid_waste" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_solid_waste_id_seq"'::"regclass"); + + +-- +-- Name: fert_stock_lot id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_stock_lot" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_stock_lot_id_seq"'::"regclass"); + + +-- +-- Name: fert_stock_move id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_stock_move" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_stock_move_id_seq"'::"regclass"); + + +-- +-- Name: fert_supplier_profile id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_supplier_profile" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_supplier_profile_id_seq"'::"regclass"); + + +-- +-- Name: fert_wastewater id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_wastewater" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_wastewater_id_seq"'::"regclass"); + + +-- +-- Name: fert_wip_stock id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_wip_stock" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_wip_stock_id_seq"'::"regclass"); + + +-- +-- Name: fert_work_sub_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_work_sub_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fert_work_sub_order_id_seq"'::"regclass"); + + +-- +-- Name: fin_account_aux id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_account_aux" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_account_aux_id_seq"'::"regclass"); + + +-- +-- Name: fin_account_perm id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_account_perm" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_account_perm_id_seq"'::"regclass"); + + +-- +-- Name: fin_account_standard id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_account_standard" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_account_standard_id_seq"'::"regclass"); + + +-- +-- Name: fin_advance id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_advance" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_advance_id_seq"'::"regclass"); + + +-- +-- Name: fin_asset_inventory id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_asset_inventory" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_asset_inventory_id_seq"'::"regclass"); + + +-- +-- Name: fin_asset_inventory_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_asset_inventory_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_asset_inventory_item_id_seq"'::"regclass"); + + +-- +-- Name: fin_bad_debt id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_bad_debt" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_bad_debt_id_seq"'::"regclass"); + + +-- +-- Name: fin_budget_adj id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_budget_adj" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_budget_adj_id_seq"'::"regclass"); + + +-- +-- Name: fin_budget_execution id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_budget_execution" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_budget_execution_id_seq"'::"regclass"); + + +-- +-- Name: fin_budget_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_budget_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_budget_plan_id_seq"'::"regclass"); + + +-- +-- Name: fin_cash_journal id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_cash_journal" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_cash_journal_id_seq"'::"regclass"); + + +-- +-- Name: fin_cip id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_cip" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_cip_id_seq"'::"regclass"); + + +-- +-- Name: fin_cost_calc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_cost_calc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_cost_calc_id_seq"'::"regclass"); + + +-- +-- Name: fin_depreciation_alloc id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_depreciation_alloc" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_depreciation_alloc_id_seq"'::"regclass"); + + +-- +-- Name: fin_elec_archive id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_elec_archive" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_elec_archive_id_seq"'::"regclass"); + + +-- +-- Name: fin_emp_loan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_emp_loan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_emp_loan_id_seq"'::"regclass"); + + +-- +-- Name: fin_field_diff_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_field_diff_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_field_diff_log_id_seq"'::"regclass"); + + +-- +-- Name: fin_impairment_test id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_impairment_test" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_impairment_test_id_seq"'::"regclass"); + + +-- +-- Name: fin_lease_right id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_lease_right" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_lease_right_id_seq"'::"regclass"); + + +-- +-- Name: fin_payroll_entry id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_payroll_entry" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_payroll_entry_id_seq"'::"regclass"); + + +-- +-- Name: fin_post_loan_check id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_post_loan_check" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_post_loan_check_id_seq"'::"regclass"); + + +-- +-- Name: fin_rd_expense id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rd_expense" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_rd_expense_id_seq"'::"regclass"); + + +-- +-- Name: fin_rd_personnel id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rd_personnel" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_rd_personnel_id_seq"'::"regclass"); + + +-- +-- Name: fin_rd_timesheet id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rd_timesheet" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_rd_timesheet_id_seq"'::"regclass"); + + +-- +-- Name: fin_rev_recognition id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rev_recognition" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_rev_recognition_id_seq"'::"regclass"); + + +-- +-- Name: fin_threeway_match id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_threeway_match" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_threeway_match_id_seq"'::"regclass"); + + +-- +-- Name: fin_voucher_template id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_voucher_template" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fin_voucher_template_id_seq"'::"regclass"); + + +-- +-- Name: financing id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."financing" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."financing_id_seq"'::"regclass"); + + +-- +-- Name: financing_policy id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."financing_policy" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."financing_policy_id_seq"'::"regclass"); + + +-- +-- Name: fixed_asset id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fixed_asset" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fixed_asset_id_seq"'::"regclass"); + + +-- +-- Name: flow_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."flow_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."flow_task_id_seq"'::"regclass"); + + +-- +-- Name: flow_trace id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."flow_trace" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."flow_trace_id_seq"'::"regclass"); + + +-- +-- Name: food_batch id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."food_batch" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."food_batch_id_seq"'::"regclass"); + + +-- +-- Name: form_instance id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."form_instance" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."form_instance_id_seq"'::"regclass"); + + +-- +-- Name: fraud_alert_rule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fraud_alert_rule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."fraud_alert_rule_id_seq"'::"regclass"); + + +-- +-- Name: handover id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."handover" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."handover_id_seq"'::"regclass"); + + +-- +-- Name: health_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."health_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."health_record_id_seq"'::"regclass"); + + +-- +-- Name: hr_ai_doc_draft id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_ai_doc_draft" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_ai_doc_draft_id_seq"'::"regclass"); + + +-- +-- Name: hr_appointment_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_appointment_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_appointment_order_id_seq"'::"regclass"); + + +-- +-- Name: hr_culture_kpi id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_culture_kpi" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_culture_kpi_id_seq"'::"regclass"); + + +-- +-- Name: hr_emp_satisfaction_survey id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_emp_satisfaction_survey" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_emp_satisfaction_survey_id_seq"'::"regclass"); + + +-- +-- Name: hr_event_archive_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_event_archive_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_event_archive_log_id_seq"'::"regclass"); + + +-- +-- Name: hr_interview_question id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_interview_question" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_interview_question_id_seq"'::"regclass"); + + +-- +-- Name: hr_labor_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_labor_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_labor_contract_id_seq"'::"regclass"); + + +-- +-- Name: hr_labor_template id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_labor_template" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_labor_template_id_seq"'::"regclass"); + + +-- +-- Name: hr_recruit_candidate id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_recruit_candidate" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_recruit_candidate_id_seq"'::"regclass"); + + +-- +-- Name: hr_recruit_job id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_recruit_job" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hr_recruit_job_id_seq"'::"regclass"); + + +-- +-- Name: hzs_hazard_source id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hzs_hazard_source" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."hzs_hazard_source_id_seq"'::"regclass"); + + +-- +-- Name: intel id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."intel" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."intel_id_seq"'::"regclass"); + + +-- +-- Name: internal_newsletter id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."internal_newsletter" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."internal_newsletter_id_seq"'::"regclass"); + + +-- +-- Name: inventory_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."inventory_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."inventory_item_id_seq"'::"regclass"); + + +-- +-- Name: inventory_valuation_config id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."inventory_valuation_config" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."inventory_valuation_config_id_seq"'::"regclass"); + + +-- +-- Name: invoice id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."invoice" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."invoice_id_seq"'::"regclass"); + + +-- +-- Name: ip_asset id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_asset" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_asset_id_seq"'::"regclass"); + + +-- +-- Name: ip_asset_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_asset_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_asset_event_id_seq"'::"regclass"); + + +-- +-- Name: ip_budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_budget_id_seq"'::"regclass"); + + +-- +-- Name: ip_fee id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_fee" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_fee_id_seq"'::"regclass"); + + +-- +-- Name: ip_free_tag id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_free_tag" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_free_tag_id_seq"'::"regclass"); + + +-- +-- Name: ip_knowledge id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_knowledge" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_knowledge_id_seq"'::"regclass"); + + +-- +-- Name: ip_license_transfer id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_license_transfer" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_license_transfer_id_seq"'::"regclass"); + + +-- +-- Name: ip_regulation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_regulation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_regulation_id_seq"'::"regclass"); + + +-- +-- Name: ip_regulation_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_regulation_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_regulation_version_id_seq"'::"regclass"); + + +-- +-- Name: ip_sci_cred_archive id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_sci_cred_archive" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ip_sci_cred_archive_id_seq"'::"regclass"); + + +-- +-- Name: it_account_audit_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_account_audit_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_account_audit_record_id_seq"'::"regclass"); + + +-- +-- Name: it_asset id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_asset" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_asset_id_seq"'::"regclass"); + + +-- +-- Name: it_asset_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_asset_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_asset_event_id_seq"'::"regclass"); + + +-- +-- Name: it_backup_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_backup_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_backup_record_id_seq"'::"regclass"); + + +-- +-- Name: it_budget_line id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_budget_line" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_budget_line_id_seq"'::"regclass"); + + +-- +-- Name: it_data_export_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_data_export_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_data_export_request_id_seq"'::"regclass"); + + +-- +-- Name: it_demand_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_demand_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_demand_request_id_seq"'::"regclass"); + + +-- +-- Name: it_disaster_drill_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_disaster_drill_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_disaster_drill_record_id_seq"'::"regclass"); + + +-- +-- Name: it_dlp_policy id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_dlp_policy" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_dlp_policy_id_seq"'::"regclass"); + + +-- +-- Name: it_inspection id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_inspection" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_inspection_id_seq"'::"regclass"); + + +-- +-- Name: it_inspection_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_inspection_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_inspection_report_id_seq"'::"regclass"); + + +-- +-- Name: it_knowledge_article id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_knowledge_article" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_knowledge_article_id_seq"'::"regclass"); + + +-- +-- Name: it_monitor_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_monitor_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_monitor_item_id_seq"'::"regclass"); + + +-- +-- Name: it_network_device id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_network_device" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_network_device_id_seq"'::"regclass"); + + +-- +-- Name: it_procurement_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_procurement_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_procurement_order_id_seq"'::"regclass"); + + +-- +-- Name: it_remote_assist_session id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_remote_assist_session" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_remote_assist_session_id_seq"'::"regclass"); + + +-- +-- Name: it_sec_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sec_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_sec_event_id_seq"'::"regclass"); + + +-- +-- Name: it_sec_policy_config id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sec_policy_config" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_sec_policy_config_id_seq"'::"regclass"); + + +-- +-- Name: it_sec_training_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sec_training_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_sec_training_record_id_seq"'::"regclass"); + + +-- +-- Name: it_service_ticket id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_service_ticket" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_service_ticket_id_seq"'::"regclass"); + + +-- +-- Name: it_software_license id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_software_license" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_software_license_id_seq"'::"regclass"); + + +-- +-- Name: it_sys_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sys_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_sys_log_id_seq"'::"regclass"); + + +-- +-- Name: it_ticket_attachment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_ticket_attachment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_ticket_attachment_id_seq"'::"regclass"); + + +-- +-- Name: it_vuln_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_vuln_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."it_vuln_record_id_seq"'::"regclass"); + + +-- +-- Name: lab_budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_budget_id_seq"'::"regclass"); + + +-- +-- Name: lab_cost_entry id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_cost_entry" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_cost_entry_id_seq"'::"regclass"); + + +-- +-- Name: lab_deviation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_deviation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_deviation_id_seq"'::"regclass"); + + +-- +-- Name: lab_eln id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_eln" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_eln_id_seq"'::"regclass"); + + +-- +-- Name: lab_eln_access_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_eln_access_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_eln_access_log_id_seq"'::"regclass"); + + +-- +-- Name: lab_eln_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_eln_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_eln_version_id_seq"'::"regclass"); + + +-- +-- Name: lab_haz_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_haz_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_haz_request_id_seq"'::"regclass"); + + +-- +-- Name: lab_incident id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_incident" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_incident_id_seq"'::"regclass"); + + +-- +-- Name: lab_instrument id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_instrument" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_instrument_id_seq"'::"regclass"); + + +-- +-- Name: lab_instrument_maint id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_instrument_maint" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_instrument_maint_id_seq"'::"regclass"); + + +-- +-- Name: lab_internal_audit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_internal_audit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_internal_audit_id_seq"'::"regclass"); + + +-- +-- Name: lab_reagent id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_reagent" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_reagent_id_seq"'::"regclass"); + + +-- +-- Name: lab_report_archive id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_report_archive" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_report_archive_id_seq"'::"regclass"); + + +-- +-- Name: lab_reservation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_reservation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_reservation_id_seq"'::"regclass"); + + +-- +-- Name: lab_safety_check id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_safety_check" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_safety_check_id_seq"'::"regclass"); + + +-- +-- Name: lab_sample id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_sample" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_sample_id_seq"'::"regclass"); + + +-- +-- Name: lab_sample_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_sample_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_sample_event_id_seq"'::"regclass"); + + +-- +-- Name: lab_stocktake id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_stocktake" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_stocktake_id_seq"'::"regclass"); + + +-- +-- Name: lab_stocktake_line id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_stocktake_line" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_stocktake_line_id_seq"'::"regclass"); + + +-- +-- Name: lab_test_method id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_test_method" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_test_method_id_seq"'::"regclass"); + + +-- +-- Name: lab_test_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_test_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_test_report_id_seq"'::"regclass"); + + +-- +-- Name: lab_test_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_test_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_test_task_id_seq"'::"regclass"); + + +-- +-- Name: lab_waste id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_waste" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."lab_waste_id_seq"'::"regclass"); + + +-- +-- Name: leader_trip id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."leader_trip" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."leader_trip_id_seq"'::"regclass"); + + +-- +-- Name: legal_auth_limit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_auth_limit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_auth_limit_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_alert_rule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_alert_rule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_alert_rule_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_anon_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_anon_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_anon_report_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_cert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_cert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_cert_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_checklist id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_checklist" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_checklist_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_obligation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_obligation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_obligation_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_risk_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_risk_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_risk_report_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_self_check_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_self_check_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_self_check_task_id_seq"'::"regclass"); + + +-- +-- Name: legal_compliance_violation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_violation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_compliance_violation_id_seq"'::"regclass"); + + +-- +-- Name: legal_credit_invest id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_credit_invest" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_credit_invest_id_seq"'::"regclass"); + + +-- +-- Name: legal_entity id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_entity" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_entity_id_seq"'::"regclass"); + + +-- +-- Name: legal_external_regulation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_external_regulation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_external_regulation_id_seq"'::"regclass"); + + +-- +-- Name: legal_financial_guarantee id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_financial_guarantee" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_financial_guarantee_id_seq"'::"regclass"); + + +-- +-- Name: legal_hr_non_compete id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_hr_non_compete" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_hr_non_compete_id_seq"'::"regclass"); + + +-- +-- Name: legal_internal_control_matrix id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_internal_control_matrix" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_internal_control_matrix_id_seq"'::"regclass"); + + +-- +-- Name: legal_ip_infringement_case id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_ip_infringement_case" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_ip_infringement_case_id_seq"'::"regclass"); + + +-- +-- Name: legal_knowledge id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_knowledge" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_knowledge_id_seq"'::"regclass"); + + +-- +-- Name: legal_legal_consult id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_legal_consult" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_legal_consult_id_seq"'::"regclass"); + + +-- +-- Name: legal_litigation_case id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_case" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_litigation_case_id_seq"'::"regclass"); + + +-- +-- Name: legal_litigation_document id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_document" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_litigation_document_id_seq"'::"regclass"); + + +-- +-- Name: legal_litigation_expense id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_expense" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_litigation_expense_id_seq"'::"regclass"); + + +-- +-- Name: legal_litigation_firm id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_firm" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_litigation_firm_id_seq"'::"regclass"); + + +-- +-- Name: legal_opinion_letter id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_opinion_letter" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_opinion_letter_id_seq"'::"regclass"); + + +-- +-- Name: legal_policy_revision id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_policy_revision" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_policy_revision_id_seq"'::"regclass"); + + +-- +-- Name: legal_regulation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_regulation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_regulation_id_seq"'::"regclass"); + + +-- +-- Name: legal_regulatory_submission id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_regulatory_submission" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_regulatory_submission_id_seq"'::"regclass"); + + +-- +-- Name: legal_risk_assess_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_assess_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_risk_assess_task_id_seq"'::"regclass"); + + +-- +-- Name: legal_risk_assessment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_assessment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_risk_assessment_id_seq"'::"regclass"); + + +-- +-- Name: legal_risk_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_risk_event_id_seq"'::"regclass"); + + +-- +-- Name: legal_risk_measure id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_measure" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_risk_measure_id_seq"'::"regclass"); + + +-- +-- Name: legal_supplier_blacklist id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_supplier_blacklist" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_supplier_blacklist_id_seq"'::"regclass"); + + +-- +-- Name: legal_trade_secret_asset id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_trade_secret_asset" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_trade_secret_asset_id_seq"'::"regclass"); + + +-- +-- Name: legal_training id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_training" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."legal_training_id_seq"'::"regclass"); + + +-- +-- Name: local_resource id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."local_resource" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."local_resource_id_seq"'::"regclass"); + + +-- +-- Name: logistics_budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_budget_id_seq"'::"regclass"); + + +-- +-- Name: logistics_expense id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_expense" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_expense_id_seq"'::"regclass"); + + +-- +-- Name: logistics_supplier id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_supplier_id_seq"'::"regclass"); + + +-- +-- Name: logistics_supplier_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_supplier_contract_id_seq"'::"regclass"); + + +-- +-- Name: logistics_supplier_eval id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier_eval" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_supplier_eval_id_seq"'::"regclass"); + + +-- +-- Name: logistics_supplier_payment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier_payment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_supplier_payment_id_seq"'::"regclass"); + + +-- +-- Name: logistics_survey id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_survey" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_survey_id_seq"'::"regclass"); + + +-- +-- Name: logistics_survey_response id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_survey_response" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_survey_response_id_seq"'::"regclass"); + + +-- +-- Name: logistics_ticket id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_ticket" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."logistics_ticket_id_seq"'::"regclass"); + + +-- +-- Name: market_budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."market_budget_id_seq"'::"regclass"); + + +-- +-- Name: market_campaign id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_campaign" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."market_campaign_id_seq"'::"regclass"); + + +-- +-- Name: market_expense id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_expense" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."market_expense_id_seq"'::"regclass"); + + +-- +-- Name: market_intel id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_intel" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."market_intel_id_seq"'::"regclass"); + + +-- +-- Name: market_qualification id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_qualification" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."market_qualification_id_seq"'::"regclass"); + + +-- +-- Name: meal_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meal_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."meal_order_id_seq"'::"regclass"); + + +-- +-- Name: measurement_payment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."measurement_payment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."measurement_payment_id_seq"'::"regclass"); + + +-- +-- Name: media_brief_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."media_brief_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."media_brief_report_id_seq"'::"regclass"); + + +-- +-- Name: media_contact id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."media_contact" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."media_contact_id_seq"'::"regclass"); + + +-- +-- Name: media_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."media_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."media_record_id_seq"'::"regclass"); + + +-- +-- Name: meeting id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."meeting_id_seq"'::"regclass"); + + +-- +-- Name: meeting_action_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting_action_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."meeting_action_item_id_seq"'::"regclass"); + + +-- +-- Name: meeting_minute id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting_minute" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."meeting_minute_id_seq"'::"regclass"); + + +-- +-- Name: meeting_room id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting_room" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."meeting_room_id_seq"'::"regclass"); + + +-- +-- Name: mfg_contract_change_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_contract_change_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_contract_change_record_id_seq"'::"regclass"); + + +-- +-- Name: mfg_cost_entry id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_cost_entry" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_cost_entry_id_seq"'::"regclass"); + + +-- +-- Name: mfg_delivery id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_delivery" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_delivery_id_seq"'::"regclass"); + + +-- +-- Name: mfg_drawing id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_drawing" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_drawing_id_seq"'::"regclass"); + + +-- +-- Name: mfg_eng_bom id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_eng_bom" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_eng_bom_id_seq"'::"regclass"); + + +-- +-- Name: mfg_eng_bom_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_eng_bom_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_eng_bom_item_id_seq"'::"regclass"); + + +-- +-- Name: mfg_env_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_env_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_env_contract_id_seq"'::"regclass"); + + +-- +-- Name: mfg_env_supplier_profile id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_env_supplier_profile" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_env_supplier_profile_id_seq"'::"regclass"); + + +-- +-- Name: mfg_equipment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_equipment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_equipment_id_seq"'::"regclass"); + + +-- +-- Name: mfg_feedstock_batch id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_feedstock_batch" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_feedstock_batch_id_seq"'::"regclass"); + + +-- +-- Name: mfg_ferment_batch id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_ferment_batch" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_ferment_batch_id_seq"'::"regclass"); + + +-- +-- Name: mfg_ferment_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_ferment_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_ferment_log_id_seq"'::"regclass"); + + +-- +-- Name: mfg_fert_recipe id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_fert_recipe" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_fert_recipe_id_seq"'::"regclass"); + + +-- +-- Name: mfg_fqc_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_fqc_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_fqc_report_id_seq"'::"regclass"); + + +-- +-- Name: mfg_inventory_lot id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_inventory_lot" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_inventory_lot_id_seq"'::"regclass"); + + +-- +-- Name: mfg_maint_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_maint_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_maint_order_id_seq"'::"regclass"); + + +-- +-- Name: mfg_material_issue id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_material_issue" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_material_issue_id_seq"'::"regclass"); + + +-- +-- Name: mfg_mps_node id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_mps_node" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_mps_node_id_seq"'::"regclass"); + + +-- +-- Name: mfg_outsource id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_outsource" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_outsource_id_seq"'::"regclass"); + + +-- +-- Name: mfg_production_anomaly id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_production_anomaly" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_production_anomaly_id_seq"'::"regclass"); + + +-- +-- Name: mfg_production_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_production_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_production_report_id_seq"'::"regclass"); + + +-- +-- Name: mfg_purchase_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_purchase_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_purchase_order_id_seq"'::"regclass"); + + +-- +-- Name: mfg_qc_inspection id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_qc_inspection" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_qc_inspection_id_seq"'::"regclass"); + + +-- +-- Name: mfg_quote id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_quote" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_quote_id_seq"'::"regclass"); + + +-- +-- Name: mfg_recipe_ingredient id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_recipe_ingredient" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_recipe_ingredient_id_seq"'::"regclass"); + + +-- +-- Name: mfg_sales_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_sales_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_sales_order_id_seq"'::"regclass"); + + +-- +-- Name: mfg_service_ticket id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_service_ticket" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_service_ticket_id_seq"'::"regclass"); + + +-- +-- Name: mfg_stocktake id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_stocktake" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_stocktake_id_seq"'::"regclass"); + + +-- +-- Name: mfg_stocktake_line id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_stocktake_line" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_stocktake_line_id_seq"'::"regclass"); + + +-- +-- Name: mfg_warranty_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_warranty_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_warranty_contract_id_seq"'::"regclass"); + + +-- +-- Name: mfg_wip_position id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_wip_position" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mfg_wip_position_id_seq"'::"regclass"); + + +-- +-- Name: mobile_checkin id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mobile_checkin" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."mobile_checkin_id_seq"'::"regclass"); + + +-- +-- Name: multi_payment_batch id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."multi_payment_batch" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."multi_payment_batch_id_seq"'::"regclass"); + + +-- +-- Name: multi_payment_batch_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."multi_payment_batch_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."multi_payment_batch_item_id_seq"'::"regclass"); + + +-- +-- Name: net_scan_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."net_scan_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."net_scan_log_id_seq"'::"regclass"); + + +-- +-- Name: net_scan_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."net_scan_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."net_scan_task_id_seq"'::"regclass"); + + +-- +-- Name: oa_message id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."oa_message" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."oa_message_id_seq"'::"regclass"); + + +-- +-- Name: oa_setting id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."oa_setting" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."oa_setting_id_seq"'::"regclass"); + + +-- +-- Name: occ_hazard_factor id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."occ_hazard_factor" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."occ_hazard_factor_id_seq"'::"regclass"); + + +-- +-- Name: occ_workplace_monitor id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."occ_workplace_monitor" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."occ_workplace_monitor_id_seq"'::"regclass"); + + +-- +-- Name: operation_audit_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."operation_audit_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."operation_audit_log_id_seq"'::"regclass"); + + +-- +-- Name: opportunity id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."opportunity" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."opportunity_id_seq"'::"regclass"); + + +-- +-- Name: opportunity_followup id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."opportunity_followup" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."opportunity_followup_id_seq"'::"regclass"); + + +-- +-- Name: ops_emergency_supply id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ops_emergency_supply" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ops_emergency_supply_id_seq"'::"regclass"); + + +-- +-- Name: ops_haz_chem_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ops_haz_chem_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ops_haz_chem_request_id_seq"'::"regclass"); + + +-- +-- Name: ops_xdept_push id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ops_xdept_push" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ops_xdept_push_id_seq"'::"regclass"); + + +-- +-- Name: org_branch id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."org_branch" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."org_branch_id_seq"'::"regclass"); + + +-- +-- Name: patent id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."patent_id_seq"'::"regclass"); + + +-- +-- Name: patent_disclosure id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent_disclosure" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."patent_disclosure_id_seq"'::"regclass"); + + +-- +-- Name: patent_fee id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent_fee" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."patent_fee_id_seq"'::"regclass"); + + +-- +-- Name: patent_mid_file id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent_mid_file" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."patent_mid_file_id_seq"'::"regclass"); + + +-- +-- Name: payment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."payment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."payment_id_seq"'::"regclass"); + + +-- +-- Name: personnel_cert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."personnel_cert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."personnel_cert_id_seq"'::"regclass"); + + +-- +-- Name: pmt_bank_evaluation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_bank_evaluation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_bank_evaluation_id_seq"'::"regclass"); + + +-- +-- Name: pmt_bank_relation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_bank_relation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_bank_relation_id_seq"'::"regclass"); + + +-- +-- Name: pmt_collection_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_collection_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_collection_log_id_seq"'::"regclass"); + + +-- +-- Name: pmt_contract_attachment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_contract_attachment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_contract_attachment_id_seq"'::"regclass"); + + +-- +-- Name: pmt_contract_fee_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_contract_fee_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_contract_fee_item_id_seq"'::"regclass"); + + +-- +-- Name: pmt_cost_alloc_rule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_cost_alloc_rule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_cost_alloc_rule_id_seq"'::"regclass"); + + +-- +-- Name: pmt_financing_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_financing_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_financing_contract_id_seq"'::"regclass"); + + +-- +-- Name: pmt_inbound_receipt id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_inbound_receipt" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_inbound_receipt_id_seq"'::"regclass"); + + +-- +-- Name: pmt_internal_trans id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_internal_trans" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_internal_trans_id_seq"'::"regclass"); + + +-- +-- Name: pmt_loan_scheme id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_loan_scheme" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_loan_scheme_id_seq"'::"regclass"); + + +-- +-- Name: pmt_payee_blacklist id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_payee_blacklist" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."pmt_payee_blacklist_id_seq"'::"regclass"); + + +-- +-- Name: policy id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."policy" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."policy_id_seq"'::"regclass"); + + +-- +-- Name: policy_application id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."policy_application" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."policy_application_id_seq"'::"regclass"); + + +-- +-- Name: ppe_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ppe_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ppe_item_id_seq"'::"regclass"); + + +-- +-- Name: price_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."price_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."price_item_id_seq"'::"regclass"); + + +-- +-- Name: project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."project_id_seq"'::"regclass"); + + +-- +-- Name: project_budget_line id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."project_budget_line" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."project_budget_line_id_seq"'::"regclass"); + + +-- +-- Name: project_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."project_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."project_task_id_seq"'::"regclass"); + + +-- +-- Name: publicity_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."publicity_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."publicity_task_id_seq"'::"regclass"); + + +-- +-- Name: publish_channel id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."publish_channel" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."publish_channel_id_seq"'::"regclass"); + + +-- +-- Name: qms_audit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_audit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qms_audit_id_seq"'::"regclass"); + + +-- +-- Name: qms_audit_finding id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_audit_finding" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qms_audit_finding_id_seq"'::"regclass"); + + +-- +-- Name: qms_document id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_document" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qms_document_id_seq"'::"regclass"); + + +-- +-- Name: qms_management_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_management_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qms_management_review_id_seq"'::"regclass"); + + +-- +-- Name: qms_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qms_record_id_seq"'::"regclass"); + + +-- +-- Name: qsup_quality_lot id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qsup_quality_lot" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qsup_quality_lot_id_seq"'::"regclass"); + + +-- +-- Name: qual_achievement id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_achievement" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_achievement_id_seq"'::"regclass"); + + +-- +-- Name: qual_cert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_cert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_cert_id_seq"'::"regclass"); + + +-- +-- Name: qual_cert_change id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_cert_change" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_cert_change_id_seq"'::"regclass"); + + +-- +-- Name: qual_decl_fee id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_decl_fee" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_decl_fee_id_seq"'::"regclass"); + + +-- +-- Name: qual_decl_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_decl_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_decl_task_id_seq"'::"regclass"); + + +-- +-- Name: qual_declaration id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_declaration" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_declaration_id_seq"'::"regclass"); + + +-- +-- Name: qual_elec_license id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_elec_license" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_elec_license_id_seq"'::"regclass"); + + +-- +-- Name: qual_risk_alert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_risk_alert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_risk_alert_id_seq"'::"regclass"); + + +-- +-- Name: qual_safety_accident id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_safety_accident" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_safety_accident_id_seq"'::"regclass"); + + +-- +-- Name: qual_usage id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_usage" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_usage_id_seq"'::"regclass"); + + +-- +-- Name: qual_year_check id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_year_check" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."qual_year_check_id_seq"'::"regclass"); + + +-- +-- Name: rd_after_sales_feedback id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_after_sales_feedback" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_after_sales_feedback_id_seq"'::"regclass"); + + +-- +-- Name: rd_annual_budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_annual_budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_annual_budget_id_seq"'::"regclass"); + + +-- +-- Name: rd_decl_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_decl_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_decl_plan_id_seq"'::"regclass"); + + +-- +-- Name: rd_design_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_design_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_design_review_id_seq"'::"regclass"); + + +-- +-- Name: rd_dev_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_dev_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_dev_project_id_seq"'::"regclass"); + + +-- +-- Name: rd_dev_project_budget id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_dev_project_budget" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_dev_project_budget_id_seq"'::"regclass"); + + +-- +-- Name: rd_dev_wbs_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_dev_wbs_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_dev_wbs_task_id_seq"'::"regclass"); + + +-- +-- Name: rd_doc_signoff id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_doc_signoff" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_doc_signoff_id_seq"'::"regclass"); + + +-- +-- Name: rd_doc_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_doc_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_doc_version_id_seq"'::"regclass"); + + +-- +-- Name: rd_ebom id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_ebom" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_ebom_id_seq"'::"regclass"); + + +-- +-- Name: rd_engineering_change id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_engineering_change" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_engineering_change_id_seq"'::"regclass"); + + +-- +-- Name: rd_expense id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_expense" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_expense_id_seq"'::"regclass"); + + +-- +-- Name: rd_grant_disbursement id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_grant_disbursement" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_grant_disbursement_id_seq"'::"regclass"); + + +-- +-- Name: rd_innovation_point id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_innovation_point" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_innovation_point_id_seq"'::"regclass"); + + +-- +-- Name: rd_issue id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_issue" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_issue_id_seq"'::"regclass"); + + +-- +-- Name: rd_knowledge id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_knowledge" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_knowledge_id_seq"'::"regclass"); + + +-- +-- Name: rd_maintenance_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_maintenance_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_maintenance_task_id_seq"'::"regclass"); + + +-- +-- Name: rd_material id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_material" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_material_id_seq"'::"regclass"); + + +-- +-- Name: rd_mobile_photo id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_mobile_photo" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_mobile_photo_id_seq"'::"regclass"); + + +-- +-- Name: rd_product_cert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_product_cert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_product_cert_id_seq"'::"regclass"); + + +-- +-- Name: rd_product_requirement id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_product_requirement" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_product_requirement_id_seq"'::"regclass"); + + +-- +-- Name: rd_product_roadmap id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_product_roadmap" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_product_roadmap_id_seq"'::"regclass"); + + +-- +-- Name: rd_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_project_id_seq"'::"regclass"); + + +-- +-- Name: rd_prototype_loan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_prototype_loan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_prototype_loan_id_seq"'::"regclass"); + + +-- +-- Name: rd_prototype_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_prototype_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_prototype_order_id_seq"'::"regclass"); + + +-- +-- Name: rd_prototype_stock id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_prototype_stock" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_prototype_stock_id_seq"'::"regclass"); + + +-- +-- Name: rd_purchase_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_purchase_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_purchase_request_id_seq"'::"regclass"); + + +-- +-- Name: rd_reuse_module id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_reuse_module" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_reuse_module_id_seq"'::"regclass"); + + +-- +-- Name: rd_review_vote id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_review_vote" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_review_vote_id_seq"'::"regclass"); + + +-- +-- Name: rd_roadmap_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_roadmap_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_roadmap_item_id_seq"'::"regclass"); + + +-- +-- Name: rd_sci_tech_personnel id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_sci_tech_personnel" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_sci_tech_personnel_id_seq"'::"regclass"); + + +-- +-- Name: rd_service_agency id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_service_agency" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_service_agency_id_seq"'::"regclass"); + + +-- +-- Name: rd_supplier_sample id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_supplier_sample" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_supplier_sample_id_seq"'::"regclass"); + + +-- +-- Name: rd_test_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_test_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_test_plan_id_seq"'::"regclass"); + + +-- +-- Name: rd_timesheet id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_timesheet" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_timesheet_id_seq"'::"regclass"); + + +-- +-- Name: rd_weekly_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_weekly_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rd_weekly_report_id_seq"'::"regclass"); + + +-- +-- Name: repayment_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."repayment_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."repayment_plan_id_seq"'::"regclass"); + + +-- +-- Name: report_definition id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."report_definition" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."report_definition_id_seq"'::"regclass"); + + +-- +-- Name: rule_config id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rule_config" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."rule_config_id_seq"'::"regclass"); + + +-- +-- Name: safety_check id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."safety_check" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."safety_check_id_seq"'::"regclass"); + + +-- +-- Name: schedule_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."schedule_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."schedule_event_id_seq"'::"regclass"); + + +-- +-- Name: seal id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."seal" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."seal_id_seq"'::"regclass"); + + +-- +-- Name: seal_use id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."seal_use" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."seal_use_id_seq"'::"regclass"); + + +-- +-- Name: secret_access_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."secret_access_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."secret_access_log_id_seq"'::"regclass"); + + +-- +-- Name: sentiment_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sentiment_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sentiment_record_id_seq"'::"regclass"); + + +-- +-- Name: sewage_cost_month id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_cost_month" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_cost_month_id_seq"'::"regclass"); + + +-- +-- Name: sewage_cost_saving_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_cost_saving_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_cost_saving_project_id_seq"'::"regclass"); + + +-- +-- Name: sewage_cross_dept_linkage id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_cross_dept_linkage" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_cross_dept_linkage_id_seq"'::"regclass"); + + +-- +-- Name: sewage_detection_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_detection_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_detection_report_id_seq"'::"regclass"); + + +-- +-- Name: sewage_emergency_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_emergency_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_emergency_plan_id_seq"'::"regclass"); + + +-- +-- Name: sewage_energy_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_energy_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_energy_log_id_seq"'::"regclass"); + + +-- +-- Name: sewage_env_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_env_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_env_record_id_seq"'::"regclass"); + + +-- +-- Name: sewage_equipment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_equipment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_equipment_id_seq"'::"regclass"); + + +-- +-- Name: sewage_ext_lab_commission id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_ext_lab_commission" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_ext_lab_commission_id_seq"'::"regclass"); + + +-- +-- Name: sewage_gov_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_gov_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_gov_report_id_seq"'::"regclass"); + + +-- +-- Name: sewage_inflow_forecast id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_inflow_forecast" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_inflow_forecast_id_seq"'::"regclass"); + + +-- +-- Name: sewage_mobile_queue id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_mobile_queue" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_mobile_queue_id_seq"'::"regclass"); + + +-- +-- Name: sewage_occ_health id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_occ_health" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_occ_health_id_seq"'::"regclass"); + + +-- +-- Name: sewage_patrol_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_patrol_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_patrol_record_id_seq"'::"regclass"); + + +-- +-- Name: sewage_patrol_route id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_patrol_route" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_patrol_route_id_seq"'::"regclass"); + + +-- +-- Name: sewage_plant_benchmark id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_plant_benchmark" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_plant_benchmark_id_seq"'::"regclass"); + + +-- +-- Name: sewage_power_section_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_power_section_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_power_section_log_id_seq"'::"regclass"); + + +-- +-- Name: sewage_process_run id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_process_run" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_process_run_id_seq"'::"regclass"); + + +-- +-- Name: sewage_process_scheme id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_process_scheme" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_process_scheme_id_seq"'::"regclass"); + + +-- +-- Name: sewage_reagent_stock id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_reagent_stock" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_reagent_stock_id_seq"'::"regclass"); + + +-- +-- Name: sewage_report_template id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_report_template" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_report_template_id_seq"'::"regclass"); + + +-- +-- Name: sewage_sampling_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_sampling_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_sampling_plan_id_seq"'::"regclass"); + + +-- +-- Name: sewage_shift_handover id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_shift_handover" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_shift_handover_id_seq"'::"regclass"); + + +-- +-- Name: sewage_sludge_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_sludge_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_sludge_record_id_seq"'::"regclass"); + + +-- +-- Name: sewage_spare_part id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_spare_part" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_spare_part_id_seq"'::"regclass"); + + +-- +-- Name: sewage_work_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_work_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sewage_work_order_id_seq"'::"regclass"); + + +-- +-- Name: sfac_facility id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfac_facility" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sfac_facility_id_seq"'::"regclass"); + + +-- +-- Name: sfty_investment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_investment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sfty_investment_id_seq"'::"regclass"); + + +-- +-- Name: sfty_responsibility id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_responsibility" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sfty_responsibility_id_seq"'::"regclass"); + + +-- +-- Name: sfty_training id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_training" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sfty_training_id_seq"'::"regclass"); + + +-- +-- Name: sfty_training_enrollment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_training_enrollment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sfty_training_enrollment_id_seq"'::"regclass"); + + +-- +-- Name: staff_credential id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_credential" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."staff_credential_id_seq"'::"regclass"); + + +-- +-- Name: staff_dossier id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_dossier" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."staff_dossier_id_seq"'::"regclass"); + + +-- +-- Name: staff_dossier_item id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_dossier_item" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."staff_dossier_item_id_seq"'::"regclass"); + + +-- +-- Name: staff_self_request id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_self_request" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."staff_self_request_id_seq"'::"regclass"); + + +-- +-- Name: standard_cost id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."standard_cost" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."standard_cost_id_seq"'::"regclass"); + + +-- +-- Name: std_application id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."std_application" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."std_application_id_seq"'::"regclass"); + + +-- +-- Name: stl_bank_reconciliation id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_bank_reconciliation" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stl_bank_reconciliation_id_seq"'::"regclass"); + + +-- +-- Name: stl_forex_risk id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_forex_risk" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stl_forex_risk_id_seq"'::"regclass"); + + +-- +-- Name: stl_fund_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_fund_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stl_fund_plan_id_seq"'::"regclass"); + + +-- +-- Name: stl_fund_plan_submission id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_fund_plan_submission" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stl_fund_plan_submission_id_seq"'::"regclass"); + + +-- +-- Name: stl_internal_settle_rule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_internal_settle_rule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stl_internal_settle_rule_id_seq"'::"regclass"); + + +-- +-- Name: stl_payment_refund id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_payment_refund" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stl_payment_refund_id_seq"'::"regclass"); + + +-- +-- Name: stl_settlement id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_settlement" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stl_settlement_id_seq"'::"regclass"); + + +-- +-- Name: stored_file id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stored_file" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."stored_file_id_seq"'::"regclass"); + + +-- +-- Name: supervision_inspection id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supervision_inspection" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."supervision_inspection_id_seq"'::"regclass"); + + +-- +-- Name: supervision_log id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supervision_log" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."supervision_log_id_seq"'::"regclass"); + + +-- +-- Name: supervision_project id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supervision_project" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."supervision_project_id_seq"'::"regclass"); + + +-- +-- Name: supplier id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supplier" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."supplier_id_seq"'::"regclass"); + + +-- +-- Name: survey id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."survey" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."survey_id_seq"'::"regclass"); + + +-- +-- Name: sv_accident id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_accident" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_accident_id_seq"'::"regclass"); + + +-- +-- Name: sv_archive_transfer id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_archive_transfer" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_archive_transfer_id_seq"'::"regclass"); + + +-- +-- Name: sv_change_claim id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_change_claim" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_change_claim_id_seq"'::"regclass"); + + +-- +-- Name: sv_drawing_issue id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_drawing_issue" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_drawing_issue_id_seq"'::"regclass"); + + +-- +-- Name: sv_equipment_ledger id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_equipment_ledger" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_equipment_ledger_id_seq"'::"regclass"); + + +-- +-- Name: sv_hidden_work id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_hidden_work" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_hidden_work_id_seq"'::"regclass"); + + +-- +-- Name: sv_indep_claim id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_indep_claim" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_indep_claim_id_seq"'::"regclass"); + + +-- +-- Name: sv_material_inspect id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_material_inspect" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_material_inspect_id_seq"'::"regclass"); + + +-- +-- Name: sv_monthly_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_monthly_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_monthly_report_id_seq"'::"regclass"); + + +-- +-- Name: sv_notice id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_notice" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_notice_id_seq"'::"regclass"); + + +-- +-- Name: sv_open_work_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_open_work_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_open_work_order_id_seq"'::"regclass"); + + +-- +-- Name: sv_patrol_checkpoint id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_patrol_checkpoint" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_patrol_checkpoint_id_seq"'::"regclass"); + + +-- +-- Name: sv_patrol_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_patrol_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_patrol_plan_id_seq"'::"regclass"); + + +-- +-- Name: sv_patrol_scheme id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_patrol_scheme" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_patrol_scheme_id_seq"'::"regclass"); + + +-- +-- Name: sv_personal_cert id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_personal_cert" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_personal_cert_id_seq"'::"regclass"); + + +-- +-- Name: sv_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_plan_id_seq"'::"regclass"); + + +-- +-- Name: sv_progress_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_progress_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_progress_plan_id_seq"'::"regclass"); + + +-- +-- Name: sv_progress_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_progress_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_progress_task_id_seq"'::"regclass"); + + +-- +-- Name: sv_qualification id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_qualification" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_qualification_id_seq"'::"regclass"); + + +-- +-- Name: sv_scheme id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_scheme" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_scheme_id_seq"'::"regclass"); + + +-- +-- Name: sv_sequence_inspect id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_sequence_inspect" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_sequence_inspect_id_seq"'::"regclass"); + + +-- +-- Name: sv_survey_verify id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_survey_verify" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sv_survey_verify_id_seq"'::"regclass"); + + +-- +-- Name: sys_dept id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_dept" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sys_dept_id_seq"'::"regclass"); + + +-- +-- Name: sys_permission_node id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_permission_node" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sys_permission_node_id_seq"'::"regclass"); + + +-- +-- Name: sys_role id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_role" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sys_role_id_seq"'::"regclass"); + + +-- +-- Name: sys_role_node id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_role_node" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sys_role_node_id_seq"'::"regclass"); + + +-- +-- Name: sys_user id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_user" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sys_user_id_seq"'::"regclass"); + + +-- +-- Name: sys_user_role id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_user_role" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."sys_user_role_id_seq"'::"regclass"); + + +-- +-- Name: tax_filing id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."tax_filing" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."tax_filing_id_seq"'::"regclass"); + + +-- +-- Name: tech_achievement id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."tech_achievement" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."tech_achievement_id_seq"'::"regclass"); + + +-- +-- Name: tech_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."tech_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."tech_contract_id_seq"'::"regclass"); + + +-- +-- Name: voucher id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."voucher" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."voucher_id_seq"'::"regclass"); + + +-- +-- Name: wastewater_client id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wastewater_client" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wastewater_client_id_seq"'::"regclass"); + + +-- +-- Name: water_quality_record id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."water_quality_record" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."water_quality_record_id_seq"'::"regclass"); + + +-- +-- Name: wm_application id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_application" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_application_id_seq"'::"regclass"); + + +-- +-- Name: wm_decl_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_decl_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_decl_plan_id_seq"'::"regclass"); + + +-- +-- Name: wm_decl_template id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_decl_template" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_decl_template_id_seq"'::"regclass"); + + +-- +-- Name: wm_doc_version id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_doc_version" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_doc_version_id_seq"'::"regclass"); + + +-- +-- Name: wm_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_event_id_seq"'::"regclass"); + + +-- +-- Name: wm_fee id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_fee" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_fee_id_seq"'::"regclass"); + + +-- +-- Name: wm_gov_subsidy id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_gov_subsidy" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_gov_subsidy_id_seq"'::"regclass"); + + +-- +-- Name: wm_promotion id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_promotion" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_promotion_id_seq"'::"regclass"); + + +-- +-- Name: wm_review id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_review" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_review_id_seq"'::"regclass"); + + +-- +-- Name: wm_reward id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_reward" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_reward_id_seq"'::"regclass"); + + +-- +-- Name: wm_reward_config id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_reward_config" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_reward_config_id_seq"'::"regclass"); + + +-- +-- Name: wm_usage id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_usage" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_usage_id_seq"'::"regclass"); + + +-- +-- Name: wm_work_method id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_work_method" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."wm_work_method_id_seq"'::"regclass"); + + +-- +-- Name: work_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."work_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."work_order_id_seq"'::"regclass"); + + +-- +-- Name: work_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."work_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."work_plan_id_seq"'::"regclass"); + + +-- +-- Name: ww_alert_rule id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_alert_rule" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_alert_rule_id_seq"'::"regclass"); + + +-- +-- Name: ww_anomaly_case id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_anomaly_case" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_anomaly_case_id_seq"'::"regclass"); + + +-- +-- Name: ww_client_attachment id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_client_attachment" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_client_attachment_id_seq"'::"regclass"); + + +-- +-- Name: ww_discharge_bill id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_discharge_bill" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_discharge_bill_id_seq"'::"regclass"); + + +-- +-- Name: ww_discharge_contract id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_discharge_contract" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_discharge_contract_id_seq"'::"regclass"); + + +-- +-- Name: ww_exceed_event id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_exceed_event" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_exceed_event_id_seq"'::"regclass"); + + +-- +-- Name: ww_hazwaste_manifest id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_hazwaste_manifest" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_hazwaste_manifest_id_seq"'::"regclass"); + + +-- +-- Name: ww_maint_order id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_maint_order" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_maint_order_id_seq"'::"regclass"); + + +-- +-- Name: ww_maint_plan id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_maint_plan" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_maint_plan_id_seq"'::"regclass"); + + +-- +-- Name: ww_msds_file id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_msds_file" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_msds_file_id_seq"'::"regclass"); + + +-- +-- Name: ww_process_unit id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_process_unit" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_process_unit_id_seq"'::"regclass"); + + +-- +-- Name: ww_sampling_task id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_sampling_task" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_sampling_task_id_seq"'::"regclass"); + + +-- +-- Name: ww_service_report id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_service_report" ALTER COLUMN "id" SET DEFAULT "nextval"('"public"."ww_service_report_id_seq"'::"regclass"); + + +-- +-- Name: account account_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."account" + ADD CONSTRAINT "account_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_access_record admin_access_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_access_record" + ADD CONSTRAINT "admin_access_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_ai_action_log admin_ai_action_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_ai_action_log" + ADD CONSTRAINT "admin_ai_action_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_cctv_device admin_cctv_device_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cctv_device" + ADD CONSTRAINT "admin_cctv_device_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_cleaning_schedule admin_cleaning_schedule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cleaning_schedule" + ADD CONSTRAINT "admin_cleaning_schedule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_cleaning_supply_move admin_cleaning_supply_move_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cleaning_supply_move" + ADD CONSTRAINT "admin_cleaning_supply_move_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_cleaning_supply admin_cleaning_supply_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cleaning_supply" + ADD CONSTRAINT "admin_cleaning_supply_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_cleaning_supply admin_cleaning_supply_supply_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_cleaning_supply" + ADD CONSTRAINT "admin_cleaning_supply_supply_code_key" UNIQUE ("supply_code"); + + +-- +-- Name: admin_conference_material admin_conference_material_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_conference_material" + ADD CONSTRAINT "admin_conference_material_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_conference_staff admin_conference_staff_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_conference_staff" + ADD CONSTRAINT "admin_conference_staff_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_doc_template admin_doc_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_doc_template" + ADD CONSTRAINT "admin_doc_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_dorm_checkin admin_dorm_checkin_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_checkin" + ADD CONSTRAINT "admin_dorm_checkin_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_dorm_inspection admin_dorm_inspection_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_inspection" + ADD CONSTRAINT "admin_dorm_inspection_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_dorm_repair admin_dorm_repair_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_repair" + ADD CONSTRAINT "admin_dorm_repair_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_dorm_room admin_dorm_room_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_room" + ADD CONSTRAINT "admin_dorm_room_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_dorm_utility admin_dorm_utility_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_dorm_utility" + ADD CONSTRAINT "admin_dorm_utility_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_equip_setup admin_equip_setup_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_equip_setup" + ADD CONSTRAINT "admin_equip_setup_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_express admin_express_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_express" + ADD CONSTRAINT "admin_express_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_footage_request admin_footage_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_footage_request" + ADD CONSTRAINT "admin_footage_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_greenery admin_greenery_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_greenery" + ADD CONSTRAINT "admin_greenery_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_hygiene_inspection admin_hygiene_inspection_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_hygiene_inspection" + ADD CONSTRAINT "admin_hygiene_inspection_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_official_doc_tpl admin_official_doc_tpl_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_official_doc_tpl" + ADD CONSTRAINT "admin_official_doc_tpl_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_patrol_log admin_patrol_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_patrol_log" + ADD CONSTRAINT "admin_patrol_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_patrol_point admin_patrol_point_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_patrol_point" + ADD CONSTRAINT "admin_patrol_point_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_procurement_request admin_procurement_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_procurement_request" + ADD CONSTRAINT "admin_procurement_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_quiz_question admin_quiz_question_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_quiz_question" + ADD CONSTRAINT "admin_quiz_question_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_quota admin_quota_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_quota" + ADD CONSTRAINT "admin_quota_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_reception admin_reception_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_reception" + ADD CONSTRAINT "admin_reception_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_recurring_booking admin_recurring_booking_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_recurring_booking" + ADD CONSTRAINT "admin_recurring_booking_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_requisition admin_requisition_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_requisition" + ADD CONSTRAINT "admin_requisition_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_security_event admin_security_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_security_event" + ADD CONSTRAINT "admin_security_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_shuttle_bus admin_shuttle_bus_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_shuttle_bus" + ADD CONSTRAINT "admin_shuttle_bus_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_shuttle_passenger admin_shuttle_passenger_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_shuttle_passenger" + ADD CONSTRAINT "admin_shuttle_passenger_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_stock_move admin_stock_move_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_stock_move" + ADD CONSTRAINT "admin_stock_move_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_supply admin_supply_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_supply" + ADD CONSTRAINT "admin_supply_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_training_course admin_training_course_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_training_course" + ADD CONSTRAINT "admin_training_course_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_training_enrollment admin_training_enrollment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_training_enrollment" + ADD CONSTRAINT "admin_training_enrollment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_vehicle_dispatch admin_vehicle_dispatch_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_vehicle_dispatch" + ADD CONSTRAINT "admin_vehicle_dispatch_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_vehicle admin_vehicle_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_vehicle" + ADD CONSTRAINT "admin_vehicle_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_vehicle_violation admin_vehicle_violation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_vehicle_violation" + ADD CONSTRAINT "admin_vehicle_violation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: admin_visitor admin_visitor_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."admin_visitor" + ADD CONSTRAINT "admin_visitor_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: announcement announcement_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."announcement" + ADD CONSTRAINT "announcement_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: annual_report annual_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."annual_report" + ADD CONSTRAINT "annual_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ar_ap_item ar_ap_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ar_ap_item" + ADD CONSTRAINT "ar_ap_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_access_log archive_access_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_access_log" + ADD CONSTRAINT "archive_access_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_acl archive_acl_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_acl" + ADD CONSTRAINT "archive_acl_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_backup_log archive_backup_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_backup_log" + ADD CONSTRAINT "archive_backup_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_borrow archive_borrow_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_borrow" + ADD CONSTRAINT "archive_borrow_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_category archive_category_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_category" + ADD CONSTRAINT "archive_category_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_comment archive_comment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_comment" + ADD CONSTRAINT "archive_comment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_destruction archive_destruction_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_destruction" + ADD CONSTRAINT "archive_destruction_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_drill_record archive_drill_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_drill_record" + ADD CONSTRAINT "archive_drill_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_hash_record archive_hash_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_hash_record" + ADD CONSTRAINT "archive_hash_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_physical_item archive_physical_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_physical_item" + ADD CONSTRAINT "archive_physical_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive archive_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive" + ADD CONSTRAINT "archive_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_repair_record archive_repair_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_repair_record" + ADD CONSTRAINT "archive_repair_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_reservation archive_reservation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_reservation" + ADD CONSTRAINT "archive_reservation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_submission archive_submission_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_submission" + ADD CONSTRAINT "archive_submission_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_vault archive_vault_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_vault" + ADD CONSTRAINT "archive_vault_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: archive_version archive_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."archive_version" + ADD CONSTRAINT "archive_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_annual_plan audit_annual_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_annual_plan" + ADD CONSTRAINT "audit_annual_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_archive audit_archive_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_archive" + ADD CONSTRAINT "audit_archive_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_auditor_profile audit_auditor_profile_employee_no_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_auditor_profile" + ADD CONSTRAINT "audit_auditor_profile_employee_no_key" UNIQUE ("employee_no"); + + +-- +-- Name: audit_auditor_profile audit_auditor_profile_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_auditor_profile" + ADD CONSTRAINT "audit_auditor_profile_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_continuous_log audit_continuous_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_continuous_log" + ADD CONSTRAINT "audit_continuous_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_economic_responsibility audit_economic_responsibility_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_economic_responsibility" + ADD CONSTRAINT "audit_economic_responsibility_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_evidence audit_evidence_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_evidence" + ADD CONSTRAINT "audit_evidence_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_finding audit_finding_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_finding" + ADD CONSTRAINT "audit_finding_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_fraud_invest_note audit_fraud_invest_note_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_fraud_invest_note" + ADD CONSTRAINT "audit_fraud_invest_note_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_fraud_report audit_fraud_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_fraud_report" + ADD CONSTRAINT "audit_fraud_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_material_request audit_material_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_material_request" + ADD CONSTRAINT "audit_material_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_monitor_exception audit_monitor_exception_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_monitor_exception" + ADD CONSTRAINT "audit_monitor_exception_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_monitor_rule audit_monitor_rule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_monitor_rule" + ADD CONSTRAINT "audit_monitor_rule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_notice audit_notice_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_notice" + ADD CONSTRAINT "audit_notice_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_procedure audit_procedure_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_procedure" + ADD CONSTRAINT "audit_procedure_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_project audit_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_project" + ADD CONSTRAINT "audit_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_quality_review audit_quality_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_quality_review" + ADD CONSTRAINT "audit_quality_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_rectification audit_rectification_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_rectification" + ADD CONSTRAINT "audit_rectification_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_report audit_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_report" + ADD CONSTRAINT "audit_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_risk_assessment audit_risk_assessment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_risk_assessment" + ADD CONSTRAINT "audit_risk_assessment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: audit_work_paper audit_work_paper_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_work_paper" + ADD CONSTRAINT "audit_work_paper_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: automation_log automation_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."automation_log" + ADD CONSTRAINT "automation_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bank_account bank_account_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bank_account" + ADD CONSTRAINT "bank_account_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_bond bid_bond_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_bond" + ADD CONSTRAINT "bid_bond_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_decision bid_decision_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_decision" + ADD CONSTRAINT "bid_decision_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_deposit bid_deposit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_deposit" + ADD CONSTRAINT "bid_deposit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_doc_version bid_doc_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_doc_version" + ADD CONSTRAINT "bid_doc_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_knowledge_entry bid_knowledge_entry_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_knowledge_entry" + ADD CONSTRAINT "bid_knowledge_entry_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_loss_case bid_loss_case_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_loss_case" + ADD CONSTRAINT "bid_loss_case_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid bid_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid" + ADD CONSTRAINT "bid_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_task bid_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_task" + ADD CONSTRAINT "bid_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_tender_collab bid_tender_collab_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_tender_collab" + ADD CONSTRAINT "bid_tender_collab_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bid_tender_doc bid_tender_doc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bid_tender_doc" + ADD CONSTRAINT "bid_tender_doc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: biz_budget biz_budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_budget" + ADD CONSTRAINT "biz_budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: biz_plan biz_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_plan" + ADD CONSTRAINT "biz_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: biz_plan_target biz_plan_target_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_plan_target" + ADD CONSTRAINT "biz_plan_target_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: biz_record biz_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."biz_record" + ADD CONSTRAINT "biz_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: blog blog_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."blog" + ADD CONSTRAINT "blog_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bom_change_history bom_change_history_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_change_history" + ADD CONSTRAINT "bom_change_history_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bom_item bom_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_item" + ADD CONSTRAINT "bom_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bom_signoff bom_signoff_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_signoff" + ADD CONSTRAINT "bom_signoff_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: bom_variance_detail bom_variance_detail_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."bom_variance_detail" + ADD CONSTRAINT "bom_variance_detail_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: branch_asset branch_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_asset" + ADD CONSTRAINT "branch_asset_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: branch_budget_line branch_budget_line_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_budget_line" + ADD CONSTRAINT "branch_budget_line_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: branch_cost_entry branch_cost_entry_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_cost_entry" + ADD CONSTRAINT "branch_cost_entry_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: branch_license branch_license_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."branch_license" + ADD CONSTRAINT "branch_license_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_asset brand_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_asset" + ADD CONSTRAINT "brand_asset_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_collab_push brand_collab_push_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_collab_push" + ADD CONSTRAINT "brand_collab_push_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_event_material brand_event_material_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_event_material" + ADD CONSTRAINT "brand_event_material_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_event brand_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_event" + ADD CONSTRAINT "brand_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_expense brand_expense_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_expense" + ADD CONSTRAINT "brand_expense_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_honor brand_honor_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_honor" + ADD CONSTRAINT "brand_honor_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_plan brand_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_plan" + ADD CONSTRAINT "brand_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_project brand_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_project" + ADD CONSTRAINT "brand_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: brand_supplier brand_supplier_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."brand_supplier" + ADD CONSTRAINT "brand_supplier_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: budget budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."budget" + ADD CONSTRAINT "budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: canteen_meal_cost canteen_meal_cost_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."canteen_meal_cost" + ADD CONSTRAINT "canteen_meal_cost_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: canteen_menu canteen_menu_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."canteen_menu" + ADD CONSTRAINT "canteen_menu_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: canteen_sanitation_record canteen_sanitation_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."canteen_sanitation_record" + ADD CONSTRAINT "canteen_sanitation_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: certification certification_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."certification" + ADD CONSTRAINT "certification_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: channel_publish_history channel_publish_history_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."channel_publish_history" + ADD CONSTRAINT "channel_publish_history_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: chronicle_event chronicle_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."chronicle_event" + ADD CONSTRAINT "chronicle_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: collab_doc collab_doc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."collab_doc" + ADD CONSTRAINT "collab_doc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: collab_doc_update collab_doc_update_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."collab_doc_update" + ADD CONSTRAINT "collab_doc_update_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: company_subject company_subject_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."company_subject" + ADD CONSTRAINT "company_subject_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: competitor_ip competitor_ip_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."competitor_ip" + ADD CONSTRAINT "competitor_ip_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: completion_acceptance completion_acceptance_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."completion_acceptance" + ADD CONSTRAINT "completion_acceptance_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: compliance_evaluation compliance_evaluation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."compliance_evaluation" + ADD CONSTRAINT "compliance_evaluation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: content_piece content_piece_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."content_piece" + ADD CONSTRAINT "content_piece_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: content_review content_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."content_review" + ADD CONSTRAINT "content_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: content_task content_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."content_task" + ADD CONSTRAINT "content_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: contract_budget_review contract_budget_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_budget_review" + ADD CONSTRAINT "contract_budget_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: contract_change contract_change_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_change" + ADD CONSTRAINT "contract_change_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: contract_esign contract_esign_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_esign" + ADD CONSTRAINT "contract_esign_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: contract_milestone contract_milestone_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_milestone" + ADD CONSTRAINT "contract_milestone_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: contract contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract" + ADD CONSTRAINT "contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: contract_template contract_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."contract_template" + ADD CONSTRAINT "contract_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cost_adjust_log cost_adjust_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_adjust_log" + ADD CONSTRAINT "cost_adjust_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cost_center cost_center_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_center" + ADD CONSTRAINT "cost_center_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cost_hr_dept_labor_rate cost_hr_dept_labor_rate_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_hr_dept_labor_rate" + ADD CONSTRAINT "cost_hr_dept_labor_rate_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cost_inv_project_link cost_inv_project_link_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_inv_project_link" + ADD CONSTRAINT "cost_inv_project_link_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cost_procurement_bid cost_procurement_bid_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_procurement_bid" + ADD CONSTRAINT "cost_procurement_bid_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cost_purchase_order cost_purchase_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_purchase_order" + ADD CONSTRAINT "cost_purchase_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cost_reduction_item cost_reduction_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cost_reduction_item" + ADD CONSTRAINT "cost_reduction_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: countersign_vote countersign_vote_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."countersign_vote" + ADD CONSTRAINT "countersign_vote_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: cpc_version cpc_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."cpc_version" + ADD CONSTRAINT "cpc_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crawl_job crawl_job_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crawl_job" + ADD CONSTRAINT "crawl_job_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crawl_source crawl_source_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crawl_source" + ADD CONSTRAINT "crawl_source_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crisis_plan crisis_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crisis_plan" + ADD CONSTRAINT "crisis_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_bid_quote_detail crm_bid_quote_detail_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_bid_quote_detail" + ADD CONSTRAINT "crm_bid_quote_detail_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_branch_lease crm_branch_lease_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_branch_lease" + ADD CONSTRAINT "crm_branch_lease_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_branch_petition crm_branch_petition_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_branch_petition" + ADD CONSTRAINT "crm_branch_petition_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_competitor crm_competitor_name_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_competitor" + ADD CONSTRAINT "crm_competitor_name_key" UNIQUE ("name"); + + +-- +-- Name: crm_competitor crm_competitor_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_competitor" + ADD CONSTRAINT "crm_competitor_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_contract_approval_step crm_contract_approval_step_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_contract_approval_step" + ADD CONSTRAINT "crm_contract_approval_step_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_customer_contact crm_customer_contact_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_customer_contact" + ADD CONSTRAINT "crm_customer_contact_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_daily_report crm_daily_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_daily_report" + ADD CONSTRAINT "crm_daily_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_doc_receipt crm_doc_receipt_document_id_recipient_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_doc_receipt" + ADD CONSTRAINT "crm_doc_receipt_document_id_recipient_code_key" UNIQUE ("document_id", "recipient_code"); + + +-- +-- Name: crm_doc_receipt crm_doc_receipt_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_doc_receipt" + ADD CONSTRAINT "crm_doc_receipt_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_imprest_fund crm_imprest_fund_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_imprest_fund" + ADD CONSTRAINT "crm_imprest_fund_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_opp_stage_config crm_opp_stage_config_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_opp_stage_config" + ADD CONSTRAINT "crm_opp_stage_config_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_petty_cash crm_petty_cash_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_petty_cash" + ADD CONSTRAINT "crm_petty_cash_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_satisfaction_survey crm_satisfaction_survey_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_satisfaction_survey" + ADD CONSTRAINT "crm_satisfaction_survey_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_talk_script crm_talk_script_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_talk_script" + ADD CONSTRAINT "crm_talk_script_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: crm_wbs_task crm_wbs_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_wbs_task" + ADD CONSTRAINT "crm_wbs_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_archive_item csl_archive_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_archive_item" + ADD CONSTRAINT "csl_archive_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_bid_link csl_bid_link_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_bid_link" + ADD CONSTRAINT "csl_bid_link_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_budget_line csl_budget_line_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_budget_line" + ADD CONSTRAINT "csl_budget_line_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_chapter_comment csl_chapter_comment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_chapter_comment" + ADD CONSTRAINT "csl_chapter_comment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_contract csl_contract_contract_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_contract" + ADD CONSTRAINT "csl_contract_contract_code_key" UNIQUE ("contract_code"); + + +-- +-- Name: csl_contract csl_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_contract" + ADD CONSTRAINT "csl_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_customer csl_customer_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_customer" + ADD CONSTRAINT "csl_customer_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_entity_history csl_entity_history_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_entity_history" + ADD CONSTRAINT "csl_entity_history_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_estimate_item csl_estimate_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_estimate_item" + ADD CONSTRAINT "csl_estimate_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_expert csl_expert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_expert" + ADD CONSTRAINT "csl_expert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_expert_score csl_expert_score_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_expert_score" + ADD CONSTRAINT "csl_expert_score_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_integral_ledger csl_integral_ledger_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_integral_ledger" + ADD CONSTRAINT "csl_integral_ledger_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_operation_log csl_operation_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_operation_log" + ADD CONSTRAINT "csl_operation_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_project_cost csl_project_cost_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_project_cost" + ADD CONSTRAINT "csl_project_cost_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_project csl_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_project" + ADD CONSTRAINT "csl_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_report_chapter csl_report_chapter_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_report_chapter" + ADD CONSTRAINT "csl_report_chapter_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_report csl_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_report" + ADD CONSTRAINT "csl_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_report_review csl_report_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_report_review" + ADD CONSTRAINT "csl_report_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_review_assignment csl_review_assignment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_review_assignment" + ADD CONSTRAINT "csl_review_assignment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_risk_log csl_risk_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_risk_log" + ADD CONSTRAINT "csl_risk_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_task csl_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_task" + ADD CONSTRAINT "csl_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_team_schedule csl_team_schedule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_team_schedule" + ADD CONSTRAINT "csl_team_schedule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: csl_timesheet csl_timesheet_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."csl_timesheet" + ADD CONSTRAINT "csl_timesheet_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_archive culture_archive_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_archive" + ADD CONSTRAINT "culture_archive_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_award culture_award_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_award" + ADD CONSTRAINT "culture_award_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_award_review culture_award_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_award_review" + ADD CONSTRAINT "culture_award_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_case culture_case_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_case" + ADD CONSTRAINT "culture_case_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_goal culture_goal_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_goal" + ADD CONSTRAINT "culture_goal_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_improve culture_improve_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_improve" + ADD CONSTRAINT "culture_improve_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_material_download culture_material_download_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_material_download" + ADD CONSTRAINT "culture_material_download_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_material culture_material_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_material" + ADD CONSTRAINT "culture_material_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_monthly_briefing culture_monthly_briefing_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_monthly_briefing" + ADD CONSTRAINT "culture_monthly_briefing_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_scheme culture_scheme_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_scheme" + ADD CONSTRAINT "culture_scheme_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_story culture_story_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_story" + ADD CONSTRAINT "culture_story_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_survey culture_survey_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_survey" + ADD CONSTRAINT "culture_survey_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: culture_survey_response culture_survey_response_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."culture_survey_response" + ADD CONSTRAINT "culture_survey_response_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: customer_complaint customer_complaint_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer_complaint" + ADD CONSTRAINT "customer_complaint_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: customer_credit customer_credit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer_credit" + ADD CONSTRAINT "customer_credit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: customer customer_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer" + ADD CONSTRAINT "customer_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: customer_visit customer_visit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."customer_visit" + ADD CONSTRAINT "customer_visit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: data_sync_log data_sync_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."data_sync_log" + ADD CONSTRAINT "data_sync_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_acceptance decl_acceptance_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_acceptance" + ADD CONSTRAINT "decl_acceptance_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_achievement decl_achievement_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_achievement" + ADD CONSTRAINT "decl_achievement_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_audit_report decl_audit_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_audit_report" + ADD CONSTRAINT "decl_audit_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_evidence_item decl_evidence_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_evidence_item" + ADD CONSTRAINT "decl_evidence_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_failure_case decl_failure_case_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_failure_case" + ADD CONSTRAINT "decl_failure_case_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_material_link decl_material_link_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_material_link" + ADD CONSTRAINT "decl_material_link_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_policy_subscription decl_policy_subscription_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_policy_subscription" + ADD CONSTRAINT "decl_policy_subscription_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_project_assignment decl_project_assignment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_project_assignment" + ADD CONSTRAINT "decl_project_assignment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_push_device decl_push_device_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_push_device" + ADD CONSTRAINT "decl_push_device_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: decl_submission decl_submission_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_submission" + ADD CONSTRAINT "decl_submission_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: declaration declaration_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."declaration" + ADD CONSTRAINT "declaration_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: declaration_step declaration_step_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."declaration_step" + ADD CONSTRAINT "declaration_step_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: declaration_template declaration_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."declaration_template" + ADD CONSTRAINT "declaration_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: delegation delegation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."delegation" + ADD CONSTRAINT "delegation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_annotation design_annotation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_annotation" + ADD CONSTRAINT "design_annotation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_audit_trail design_audit_trail_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_audit_trail" + ADD CONSTRAINT "design_audit_trail_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_change_order design_change_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_change_order" + ADD CONSTRAINT "design_change_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_change design_change_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_change" + ADD CONSTRAINT "design_change_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_clash design_clash_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_clash" + ADD CONSTRAINT "design_clash_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_distribution design_distribution_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_distribution" + ADD CONSTRAINT "design_distribution_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_doc design_doc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_doc" + ADD CONSTRAINT "design_doc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_drawing design_drawing_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_drawing" + ADD CONSTRAINT "design_drawing_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_drawing_version design_drawing_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_drawing_version" + ADD CONSTRAINT "design_drawing_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_external_access design_external_access_access_token_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_external_access" + ADD CONSTRAINT "design_external_access_access_token_key" UNIQUE ("access_token"); + + +-- +-- Name: design_external_access design_external_access_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_external_access" + ADD CONSTRAINT "design_external_access_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_external_portal design_external_portal_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_external_portal" + ADD CONSTRAINT "design_external_portal_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_external_portal design_external_portal_portal_token_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_external_portal" + ADD CONSTRAINT "design_external_portal_portal_token_key" UNIQUE ("portal_token"); + + +-- +-- Name: design_handoff design_handoff_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_handoff" + ADD CONSTRAINT "design_handoff_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_interface design_interface_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_interface" + ADD CONSTRAINT "design_interface_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_knowledge design_knowledge_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_knowledge" + ADD CONSTRAINT "design_knowledge_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_metric design_metric_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_metric" + ADD CONSTRAINT "design_metric_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_output_share design_output_share_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_output_share" + ADD CONSTRAINT "design_output_share_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_project design_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_project" + ADD CONSTRAINT "design_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_reservation design_reservation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_reservation" + ADD CONSTRAINT "design_reservation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: design_task design_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."design_task" + ADD CONSTRAINT "design_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: designer_capability designer_capability_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."designer_capability" + ADD CONSTRAINT "designer_capability_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: discussion discussion_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."discussion" + ADD CONSTRAINT "discussion_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: dish_review dish_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."dish_review" + ADD CONSTRAINT "dish_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: doc_file doc_file_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."doc_file" + ADD CONSTRAINT "doc_file_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: doc_folder doc_folder_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."doc_folder" + ADD CONSTRAINT "doc_folder_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_audit_prep_task ehs_audit_prep_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_audit_prep_task" + ADD CONSTRAINT "ehs_audit_prep_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_capa ehs_capa_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_capa" + ADD CONSTRAINT "ehs_capa_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_check_plan ehs_check_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_check_plan" + ADD CONSTRAINT "ehs_check_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_contractor_edu ehs_contractor_edu_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_contractor_edu" + ADD CONSTRAINT "ehs_contractor_edu_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_env_tax_record ehs_env_tax_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_env_tax_record" + ADD CONSTRAINT "ehs_env_tax_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_hazard ehs_hazard_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_hazard" + ADD CONSTRAINT "ehs_hazard_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_incident ehs_incident_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_incident" + ADD CONSTRAINT "ehs_incident_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_objective ehs_objective_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_objective" + ADD CONSTRAINT "ehs_objective_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_special_equip ehs_special_equip_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_special_equip" + ADD CONSTRAINT "ehs_special_equip_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_supply ehs_supply_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_supply" + ADD CONSTRAINT "ehs_supply_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ehs_work_permit ehs_work_permit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ehs_work_permit" + ADD CONSTRAINT "ehs_work_permit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: emg_drill emg_drill_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."emg_drill" + ADD CONSTRAINT "emg_drill_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: emp_share_material emp_share_material_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."emp_share_material" + ADD CONSTRAINT "emp_share_material_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: env_compli_obligation env_compli_obligation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_compli_obligation" + ADD CONSTRAINT "env_compli_obligation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: env_discharge_permit env_discharge_permit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_discharge_permit" + ADD CONSTRAINT "env_discharge_permit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: env_monitor_record env_monitor_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_monitor_record" + ADD CONSTRAINT "env_monitor_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: env_risk_source env_risk_source_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_risk_source" + ADD CONSTRAINT "env_risk_source_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: env_waste_record env_waste_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."env_waste_record" + ADD CONSTRAINT "env_waste_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: event_checkin event_checkin_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."event_checkin" + ADD CONSTRAINT "event_checkin_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: event_guest event_guest_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."event_guest" + ADD CONSTRAINT "event_guest_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: event_task event_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."event_task" + ADD CONSTRAINT "event_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: expense_claim expense_claim_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."expense_claim" + ADD CONSTRAINT "expense_claim_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: expert expert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."expert" + ADD CONSTRAINT "expert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ext_audit_plan ext_audit_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ext_audit_plan" + ADD CONSTRAINT "ext_audit_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ext_system_config ext_system_config_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ext_system_config" + ADD CONSTRAINT "ext_system_config_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: favorite favorite_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."favorite" + ADD CONSTRAINT "favorite_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: feed_like feed_like_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."feed_like" + ADD CONSTRAINT "feed_like_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: feed_like feed_like_user_id_feed_id_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."feed_like" + ADD CONSTRAINT "feed_like_user_id_feed_id_key" UNIQUE ("user_id", "feed_id"); + + +-- +-- Name: feed feed_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."feed" + ADD CONSTRAINT "feed_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_accounting_voucher fert_accounting_voucher_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_accounting_voucher" + ADD CONSTRAINT "fert_accounting_voucher_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_accounting_voucher fert_accounting_voucher_voucher_no_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_accounting_voucher" + ADD CONSTRAINT "fert_accounting_voucher_voucher_no_key" UNIQUE ("voucher_no"); + + +-- +-- Name: fert_agri_service fert_agri_service_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_agri_service" + ADD CONSTRAINT "fert_agri_service_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_batch_cost fert_batch_cost_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_batch_cost" + ADD CONSTRAINT "fert_batch_cost_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_customer_profile fert_customer_profile_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_customer_profile" + ADD CONSTRAINT "fert_customer_profile_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_delivery fert_delivery_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_delivery" + ADD CONSTRAINT "fert_delivery_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_energy_log fert_energy_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_energy_log" + ADD CONSTRAINT "fert_energy_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_gas_emission fert_gas_emission_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_gas_emission" + ADD CONSTRAINT "fert_gas_emission_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_invoice_ledger fert_invoice_ledger_invoice_no_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_invoice_ledger" + ADD CONSTRAINT "fert_invoice_ledger_invoice_no_key" UNIQUE ("invoice_no"); + + +-- +-- Name: fert_invoice_ledger fert_invoice_ledger_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_invoice_ledger" + ADD CONSTRAINT "fert_invoice_ledger_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_mps fert_mps_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_mps" + ADD CONSTRAINT "fert_mps_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_occ_health fert_occ_health_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_occ_health" + ADD CONSTRAINT "fert_occ_health_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_pack_order fert_pack_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_pack_order" + ADD CONSTRAINT "fert_pack_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_pkg_material_ledger fert_pkg_material_ledger_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_pkg_material_ledger" + ADD CONSTRAINT "fert_pkg_material_ledger_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_pkg_material_ledger fert_pkg_material_ledger_pkg_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_pkg_material_ledger" + ADD CONSTRAINT "fert_pkg_material_ledger_pkg_code_key" UNIQUE ("pkg_code"); + + +-- +-- Name: fert_process_qc fert_process_qc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_process_qc" + ADD CONSTRAINT "fert_process_qc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_procure_plan fert_procure_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_procure_plan" + ADD CONSTRAINT "fert_procure_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_product_qc fert_product_qc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_product_qc" + ADD CONSTRAINT "fert_product_qc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_qc_standard fert_qc_standard_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_qc_standard" + ADD CONSTRAINT "fert_qc_standard_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_raw_material_catalog fert_raw_material_catalog_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_raw_material_catalog" + ADD CONSTRAINT "fert_raw_material_catalog_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_raw_material_qc fert_raw_material_qc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_raw_material_qc" + ADD CONSTRAINT "fert_raw_material_qc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_safety_patrol_log fert_safety_patrol_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_safety_patrol_log" + ADD CONSTRAINT "fert_safety_patrol_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_safety_patrol_plan fert_safety_patrol_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_safety_patrol_plan" + ADD CONSTRAINT "fert_safety_patrol_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_sales_line fert_sales_line_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_sales_line" + ADD CONSTRAINT "fert_sales_line_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_sales_order fert_sales_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_sales_order" + ADD CONSTRAINT "fert_sales_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_solid_waste fert_solid_waste_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_solid_waste" + ADD CONSTRAINT "fert_solid_waste_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_stock_lot fert_stock_lot_batch_no_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_stock_lot" + ADD CONSTRAINT "fert_stock_lot_batch_no_key" UNIQUE ("batch_no"); + + +-- +-- Name: fert_stock_lot fert_stock_lot_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_stock_lot" + ADD CONSTRAINT "fert_stock_lot_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_stock_move fert_stock_move_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_stock_move" + ADD CONSTRAINT "fert_stock_move_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_supplier_profile fert_supplier_profile_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_supplier_profile" + ADD CONSTRAINT "fert_supplier_profile_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_wastewater fert_wastewater_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_wastewater" + ADD CONSTRAINT "fert_wastewater_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_wip_stock fert_wip_stock_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_wip_stock" + ADD CONSTRAINT "fert_wip_stock_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fert_work_sub_order fert_work_sub_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fert_work_sub_order" + ADD CONSTRAINT "fert_work_sub_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_account_aux fin_account_aux_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_account_aux" + ADD CONSTRAINT "fin_account_aux_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_account_perm fin_account_perm_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_account_perm" + ADD CONSTRAINT "fin_account_perm_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_account_standard fin_account_standard_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_account_standard" + ADD CONSTRAINT "fin_account_standard_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_advance fin_advance_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_advance" + ADD CONSTRAINT "fin_advance_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_asset_inventory_item fin_asset_inventory_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_asset_inventory_item" + ADD CONSTRAINT "fin_asset_inventory_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_asset_inventory fin_asset_inventory_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_asset_inventory" + ADD CONSTRAINT "fin_asset_inventory_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_bad_debt fin_bad_debt_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_bad_debt" + ADD CONSTRAINT "fin_bad_debt_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_budget_adj fin_budget_adj_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_budget_adj" + ADD CONSTRAINT "fin_budget_adj_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_budget_execution fin_budget_execution_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_budget_execution" + ADD CONSTRAINT "fin_budget_execution_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_budget_plan fin_budget_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_budget_plan" + ADD CONSTRAINT "fin_budget_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_cash_journal fin_cash_journal_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_cash_journal" + ADD CONSTRAINT "fin_cash_journal_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_cip fin_cip_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_cip" + ADD CONSTRAINT "fin_cip_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_cost_calc fin_cost_calc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_cost_calc" + ADD CONSTRAINT "fin_cost_calc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_depreciation_alloc fin_depreciation_alloc_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_depreciation_alloc" + ADD CONSTRAINT "fin_depreciation_alloc_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_elec_archive fin_elec_archive_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_elec_archive" + ADD CONSTRAINT "fin_elec_archive_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_emp_loan fin_emp_loan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_emp_loan" + ADD CONSTRAINT "fin_emp_loan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_field_diff_log fin_field_diff_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_field_diff_log" + ADD CONSTRAINT "fin_field_diff_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_impairment_test fin_impairment_test_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_impairment_test" + ADD CONSTRAINT "fin_impairment_test_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_lease_right fin_lease_right_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_lease_right" + ADD CONSTRAINT "fin_lease_right_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_payroll_entry fin_payroll_entry_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_payroll_entry" + ADD CONSTRAINT "fin_payroll_entry_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_post_loan_check fin_post_loan_check_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_post_loan_check" + ADD CONSTRAINT "fin_post_loan_check_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_rd_expense fin_rd_expense_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rd_expense" + ADD CONSTRAINT "fin_rd_expense_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_rd_personnel fin_rd_personnel_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rd_personnel" + ADD CONSTRAINT "fin_rd_personnel_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_rd_timesheet fin_rd_timesheet_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rd_timesheet" + ADD CONSTRAINT "fin_rd_timesheet_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_rev_recognition fin_rev_recognition_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_rev_recognition" + ADD CONSTRAINT "fin_rev_recognition_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_threeway_match fin_threeway_match_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_threeway_match" + ADD CONSTRAINT "fin_threeway_match_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fin_voucher_template fin_voucher_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fin_voucher_template" + ADD CONSTRAINT "fin_voucher_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: financing financing_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."financing" + ADD CONSTRAINT "financing_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: financing_policy financing_policy_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."financing_policy" + ADD CONSTRAINT "financing_policy_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fixed_asset fixed_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fixed_asset" + ADD CONSTRAINT "fixed_asset_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: flow_task flow_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."flow_task" + ADD CONSTRAINT "flow_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: flow_trace flow_trace_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."flow_trace" + ADD CONSTRAINT "flow_trace_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: food_batch food_batch_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."food_batch" + ADD CONSTRAINT "food_batch_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: form_instance form_instance_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."form_instance" + ADD CONSTRAINT "form_instance_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: form_template form_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."form_template" + ADD CONSTRAINT "form_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fraud_alert_rule fraud_alert_rule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fraud_alert_rule" + ADD CONSTRAINT "fraud_alert_rule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: fts_index fts_index_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."fts_index" + ADD CONSTRAINT "fts_index_pkey" PRIMARY KEY ("type", "ref_id"); + + +-- +-- Name: handover handover_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."handover" + ADD CONSTRAINT "handover_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: health_record health_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."health_record" + ADD CONSTRAINT "health_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_ai_doc_draft hr_ai_doc_draft_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_ai_doc_draft" + ADD CONSTRAINT "hr_ai_doc_draft_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_appointment_order hr_appointment_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_appointment_order" + ADD CONSTRAINT "hr_appointment_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_culture_kpi hr_culture_kpi_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_culture_kpi" + ADD CONSTRAINT "hr_culture_kpi_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_emp_satisfaction_survey hr_emp_satisfaction_survey_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_emp_satisfaction_survey" + ADD CONSTRAINT "hr_emp_satisfaction_survey_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_event_archive_log hr_event_archive_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_event_archive_log" + ADD CONSTRAINT "hr_event_archive_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_interview_question hr_interview_question_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_interview_question" + ADD CONSTRAINT "hr_interview_question_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_labor_contract hr_labor_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_labor_contract" + ADD CONSTRAINT "hr_labor_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_labor_template hr_labor_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_labor_template" + ADD CONSTRAINT "hr_labor_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_recruit_candidate hr_recruit_candidate_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_recruit_candidate" + ADD CONSTRAINT "hr_recruit_candidate_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hr_recruit_job hr_recruit_job_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hr_recruit_job" + ADD CONSTRAINT "hr_recruit_job_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: hzs_hazard_source hzs_hazard_source_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."hzs_hazard_source" + ADD CONSTRAINT "hzs_hazard_source_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: intel intel_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."intel" + ADD CONSTRAINT "intel_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: internal_newsletter internal_newsletter_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."internal_newsletter" + ADD CONSTRAINT "internal_newsletter_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: inventory_item inventory_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."inventory_item" + ADD CONSTRAINT "inventory_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: inventory_valuation_config inventory_valuation_config_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."inventory_valuation_config" + ADD CONSTRAINT "inventory_valuation_config_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: invoice invoice_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."invoice" + ADD CONSTRAINT "invoice_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_asset_event ip_asset_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_asset_event" + ADD CONSTRAINT "ip_asset_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_asset ip_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_asset" + ADD CONSTRAINT "ip_asset_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_budget ip_budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_budget" + ADD CONSTRAINT "ip_budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_fee ip_fee_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_fee" + ADD CONSTRAINT "ip_fee_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_free_tag ip_free_tag_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_free_tag" + ADD CONSTRAINT "ip_free_tag_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_knowledge ip_knowledge_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_knowledge" + ADD CONSTRAINT "ip_knowledge_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_license_transfer ip_license_transfer_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_license_transfer" + ADD CONSTRAINT "ip_license_transfer_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_regulation ip_regulation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_regulation" + ADD CONSTRAINT "ip_regulation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_regulation_version ip_regulation_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_regulation_version" + ADD CONSTRAINT "ip_regulation_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ip_sci_cred_archive ip_sci_cred_archive_archive_no_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_sci_cred_archive" + ADD CONSTRAINT "ip_sci_cred_archive_archive_no_key" UNIQUE ("archive_no"); + + +-- +-- Name: ip_sci_cred_archive ip_sci_cred_archive_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ip_sci_cred_archive" + ADD CONSTRAINT "ip_sci_cred_archive_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_account_audit_record it_account_audit_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_account_audit_record" + ADD CONSTRAINT "it_account_audit_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_asset_event it_asset_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_asset_event" + ADD CONSTRAINT "it_asset_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_asset it_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_asset" + ADD CONSTRAINT "it_asset_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_backup_record it_backup_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_backup_record" + ADD CONSTRAINT "it_backup_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_budget_line it_budget_line_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_budget_line" + ADD CONSTRAINT "it_budget_line_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_data_export_request it_data_export_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_data_export_request" + ADD CONSTRAINT "it_data_export_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_demand_request it_demand_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_demand_request" + ADD CONSTRAINT "it_demand_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_disaster_drill_record it_disaster_drill_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_disaster_drill_record" + ADD CONSTRAINT "it_disaster_drill_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_dlp_policy it_dlp_policy_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_dlp_policy" + ADD CONSTRAINT "it_dlp_policy_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_inspection it_inspection_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_inspection" + ADD CONSTRAINT "it_inspection_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_inspection_report it_inspection_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_inspection_report" + ADD CONSTRAINT "it_inspection_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_knowledge_article it_knowledge_article_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_knowledge_article" + ADD CONSTRAINT "it_knowledge_article_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_monitor_item it_monitor_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_monitor_item" + ADD CONSTRAINT "it_monitor_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_network_device it_network_device_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_network_device" + ADD CONSTRAINT "it_network_device_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_procurement_order it_procurement_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_procurement_order" + ADD CONSTRAINT "it_procurement_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_remote_assist_session it_remote_assist_session_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_remote_assist_session" + ADD CONSTRAINT "it_remote_assist_session_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_sec_event it_sec_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sec_event" + ADD CONSTRAINT "it_sec_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_sec_policy_config it_sec_policy_config_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sec_policy_config" + ADD CONSTRAINT "it_sec_policy_config_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_sec_training_record it_sec_training_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sec_training_record" + ADD CONSTRAINT "it_sec_training_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_service_ticket it_service_ticket_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_service_ticket" + ADD CONSTRAINT "it_service_ticket_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_software_license it_software_license_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_software_license" + ADD CONSTRAINT "it_software_license_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_sys_log it_sys_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_sys_log" + ADD CONSTRAINT "it_sys_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_ticket_attachment it_ticket_attachment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_ticket_attachment" + ADD CONSTRAINT "it_ticket_attachment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: it_vuln_record it_vuln_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."it_vuln_record" + ADD CONSTRAINT "it_vuln_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_budget lab_budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_budget" + ADD CONSTRAINT "lab_budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_cost_entry lab_cost_entry_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_cost_entry" + ADD CONSTRAINT "lab_cost_entry_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_deviation lab_deviation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_deviation" + ADD CONSTRAINT "lab_deviation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_eln_access_log lab_eln_access_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_eln_access_log" + ADD CONSTRAINT "lab_eln_access_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_eln lab_eln_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_eln" + ADD CONSTRAINT "lab_eln_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_eln_version lab_eln_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_eln_version" + ADD CONSTRAINT "lab_eln_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_haz_request lab_haz_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_haz_request" + ADD CONSTRAINT "lab_haz_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_incident lab_incident_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_incident" + ADD CONSTRAINT "lab_incident_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_instrument_maint lab_instrument_maint_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_instrument_maint" + ADD CONSTRAINT "lab_instrument_maint_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_instrument lab_instrument_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_instrument" + ADD CONSTRAINT "lab_instrument_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_internal_audit lab_internal_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_internal_audit" + ADD CONSTRAINT "lab_internal_audit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_reagent lab_reagent_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_reagent" + ADD CONSTRAINT "lab_reagent_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_report_archive lab_report_archive_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_report_archive" + ADD CONSTRAINT "lab_report_archive_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_reservation lab_reservation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_reservation" + ADD CONSTRAINT "lab_reservation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_safety_check lab_safety_check_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_safety_check" + ADD CONSTRAINT "lab_safety_check_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_sample_event lab_sample_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_sample_event" + ADD CONSTRAINT "lab_sample_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_sample lab_sample_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_sample" + ADD CONSTRAINT "lab_sample_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_stocktake_line lab_stocktake_line_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_stocktake_line" + ADD CONSTRAINT "lab_stocktake_line_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_stocktake lab_stocktake_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_stocktake" + ADD CONSTRAINT "lab_stocktake_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_test_method lab_test_method_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_test_method" + ADD CONSTRAINT "lab_test_method_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_test_report lab_test_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_test_report" + ADD CONSTRAINT "lab_test_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_test_task lab_test_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_test_task" + ADD CONSTRAINT "lab_test_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: lab_waste lab_waste_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."lab_waste" + ADD CONSTRAINT "lab_waste_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: leader_trip leader_trip_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."leader_trip" + ADD CONSTRAINT "leader_trip_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_auth_limit legal_auth_limit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_auth_limit" + ADD CONSTRAINT "legal_auth_limit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_alert_rule legal_compliance_alert_rule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_alert_rule" + ADD CONSTRAINT "legal_compliance_alert_rule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_anon_report legal_compliance_anon_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_anon_report" + ADD CONSTRAINT "legal_compliance_anon_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_anon_report legal_compliance_anon_report_query_token_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_anon_report" + ADD CONSTRAINT "legal_compliance_anon_report_query_token_key" UNIQUE ("query_token"); + + +-- +-- Name: legal_compliance_cert legal_compliance_cert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_cert" + ADD CONSTRAINT "legal_compliance_cert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_checklist legal_compliance_checklist_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_checklist" + ADD CONSTRAINT "legal_compliance_checklist_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_obligation legal_compliance_obligation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_obligation" + ADD CONSTRAINT "legal_compliance_obligation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_risk_report legal_compliance_risk_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_risk_report" + ADD CONSTRAINT "legal_compliance_risk_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_self_check_task legal_compliance_self_check_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_self_check_task" + ADD CONSTRAINT "legal_compliance_self_check_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_compliance_violation legal_compliance_violation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_compliance_violation" + ADD CONSTRAINT "legal_compliance_violation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_credit_invest legal_credit_invest_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_credit_invest" + ADD CONSTRAINT "legal_credit_invest_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_entity legal_entity_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_entity" + ADD CONSTRAINT "legal_entity_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_external_regulation legal_external_regulation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_external_regulation" + ADD CONSTRAINT "legal_external_regulation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_financial_guarantee legal_financial_guarantee_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_financial_guarantee" + ADD CONSTRAINT "legal_financial_guarantee_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_hr_non_compete legal_hr_non_compete_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_hr_non_compete" + ADD CONSTRAINT "legal_hr_non_compete_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_internal_control_matrix legal_internal_control_matrix_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_internal_control_matrix" + ADD CONSTRAINT "legal_internal_control_matrix_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_ip_infringement_case legal_ip_infringement_case_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_ip_infringement_case" + ADD CONSTRAINT "legal_ip_infringement_case_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_knowledge legal_knowledge_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_knowledge" + ADD CONSTRAINT "legal_knowledge_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_legal_consult legal_legal_consult_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_legal_consult" + ADD CONSTRAINT "legal_legal_consult_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_litigation_case legal_litigation_case_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_case" + ADD CONSTRAINT "legal_litigation_case_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_litigation_document legal_litigation_document_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_document" + ADD CONSTRAINT "legal_litigation_document_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_litigation_expense legal_litigation_expense_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_expense" + ADD CONSTRAINT "legal_litigation_expense_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_litigation_firm legal_litigation_firm_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_litigation_firm" + ADD CONSTRAINT "legal_litigation_firm_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_opinion_letter legal_opinion_letter_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_opinion_letter" + ADD CONSTRAINT "legal_opinion_letter_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_policy_revision legal_policy_revision_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_policy_revision" + ADD CONSTRAINT "legal_policy_revision_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_regulation legal_regulation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_regulation" + ADD CONSTRAINT "legal_regulation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_regulatory_submission legal_regulatory_submission_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_regulatory_submission" + ADD CONSTRAINT "legal_regulatory_submission_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_risk_assess_task legal_risk_assess_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_assess_task" + ADD CONSTRAINT "legal_risk_assess_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_risk_assessment legal_risk_assessment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_assessment" + ADD CONSTRAINT "legal_risk_assessment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_risk_event legal_risk_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_event" + ADD CONSTRAINT "legal_risk_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_risk_measure legal_risk_measure_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_risk_measure" + ADD CONSTRAINT "legal_risk_measure_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_supplier_blacklist legal_supplier_blacklist_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_supplier_blacklist" + ADD CONSTRAINT "legal_supplier_blacklist_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_trade_secret_asset legal_trade_secret_asset_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_trade_secret_asset" + ADD CONSTRAINT "legal_trade_secret_asset_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: legal_training legal_training_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_training" + ADD CONSTRAINT "legal_training_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: local_resource local_resource_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."local_resource" + ADD CONSTRAINT "local_resource_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_budget logistics_budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_budget" + ADD CONSTRAINT "logistics_budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_expense logistics_expense_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_expense" + ADD CONSTRAINT "logistics_expense_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_supplier_contract logistics_supplier_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier_contract" + ADD CONSTRAINT "logistics_supplier_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_supplier_eval logistics_supplier_eval_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier_eval" + ADD CONSTRAINT "logistics_supplier_eval_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_supplier_payment logistics_supplier_payment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier_payment" + ADD CONSTRAINT "logistics_supplier_payment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_supplier logistics_supplier_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_supplier" + ADD CONSTRAINT "logistics_supplier_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_survey logistics_survey_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_survey" + ADD CONSTRAINT "logistics_survey_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_survey_response logistics_survey_response_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_survey_response" + ADD CONSTRAINT "logistics_survey_response_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: logistics_ticket logistics_ticket_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."logistics_ticket" + ADD CONSTRAINT "logistics_ticket_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: market_budget market_budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_budget" + ADD CONSTRAINT "market_budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: market_campaign market_campaign_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_campaign" + ADD CONSTRAINT "market_campaign_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: market_expense market_expense_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_expense" + ADD CONSTRAINT "market_expense_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: market_intel market_intel_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_intel" + ADD CONSTRAINT "market_intel_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: market_qualification market_qualification_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."market_qualification" + ADD CONSTRAINT "market_qualification_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: meal_order meal_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meal_order" + ADD CONSTRAINT "meal_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: measurement_payment measurement_payment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."measurement_payment" + ADD CONSTRAINT "measurement_payment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: media_brief_report media_brief_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."media_brief_report" + ADD CONSTRAINT "media_brief_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: media_contact media_contact_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."media_contact" + ADD CONSTRAINT "media_contact_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: media_record media_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."media_record" + ADD CONSTRAINT "media_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: meeting_action_item meeting_action_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting_action_item" + ADD CONSTRAINT "meeting_action_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: meeting_minute meeting_minute_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting_minute" + ADD CONSTRAINT "meeting_minute_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: meeting meeting_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting" + ADD CONSTRAINT "meeting_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: meeting_room meeting_room_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."meeting_room" + ADD CONSTRAINT "meeting_room_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_contract_change_record mfg_contract_change_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_contract_change_record" + ADD CONSTRAINT "mfg_contract_change_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_cost_entry mfg_cost_entry_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_cost_entry" + ADD CONSTRAINT "mfg_cost_entry_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_delivery mfg_delivery_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_delivery" + ADD CONSTRAINT "mfg_delivery_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_drawing mfg_drawing_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_drawing" + ADD CONSTRAINT "mfg_drawing_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_eng_bom_item mfg_eng_bom_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_eng_bom_item" + ADD CONSTRAINT "mfg_eng_bom_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_eng_bom mfg_eng_bom_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_eng_bom" + ADD CONSTRAINT "mfg_eng_bom_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_env_contract mfg_env_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_env_contract" + ADD CONSTRAINT "mfg_env_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_env_supplier_profile mfg_env_supplier_profile_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_env_supplier_profile" + ADD CONSTRAINT "mfg_env_supplier_profile_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_equipment mfg_equipment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_equipment" + ADD CONSTRAINT "mfg_equipment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_feedstock_batch mfg_feedstock_batch_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_feedstock_batch" + ADD CONSTRAINT "mfg_feedstock_batch_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_ferment_batch mfg_ferment_batch_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_ferment_batch" + ADD CONSTRAINT "mfg_ferment_batch_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_ferment_log mfg_ferment_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_ferment_log" + ADD CONSTRAINT "mfg_ferment_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_fert_recipe mfg_fert_recipe_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_fert_recipe" + ADD CONSTRAINT "mfg_fert_recipe_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_fqc_report mfg_fqc_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_fqc_report" + ADD CONSTRAINT "mfg_fqc_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_inventory_lot mfg_inventory_lot_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_inventory_lot" + ADD CONSTRAINT "mfg_inventory_lot_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_maint_order mfg_maint_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_maint_order" + ADD CONSTRAINT "mfg_maint_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_material_issue mfg_material_issue_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_material_issue" + ADD CONSTRAINT "mfg_material_issue_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_mps_node mfg_mps_node_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_mps_node" + ADD CONSTRAINT "mfg_mps_node_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_outsource mfg_outsource_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_outsource" + ADD CONSTRAINT "mfg_outsource_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_production_anomaly mfg_production_anomaly_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_production_anomaly" + ADD CONSTRAINT "mfg_production_anomaly_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_production_report mfg_production_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_production_report" + ADD CONSTRAINT "mfg_production_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_purchase_order mfg_purchase_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_purchase_order" + ADD CONSTRAINT "mfg_purchase_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_qc_inspection mfg_qc_inspection_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_qc_inspection" + ADD CONSTRAINT "mfg_qc_inspection_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_quote mfg_quote_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_quote" + ADD CONSTRAINT "mfg_quote_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_recipe_ingredient mfg_recipe_ingredient_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_recipe_ingredient" + ADD CONSTRAINT "mfg_recipe_ingredient_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_sales_order mfg_sales_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_sales_order" + ADD CONSTRAINT "mfg_sales_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_service_ticket mfg_service_ticket_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_service_ticket" + ADD CONSTRAINT "mfg_service_ticket_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_stocktake_line mfg_stocktake_line_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_stocktake_line" + ADD CONSTRAINT "mfg_stocktake_line_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_stocktake mfg_stocktake_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_stocktake" + ADD CONSTRAINT "mfg_stocktake_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_warranty_contract mfg_warranty_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_warranty_contract" + ADD CONSTRAINT "mfg_warranty_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mfg_wip_position mfg_wip_position_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mfg_wip_position" + ADD CONSTRAINT "mfg_wip_position_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: mobile_checkin mobile_checkin_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."mobile_checkin" + ADD CONSTRAINT "mobile_checkin_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: multi_payment_batch_item multi_payment_batch_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."multi_payment_batch_item" + ADD CONSTRAINT "multi_payment_batch_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: multi_payment_batch multi_payment_batch_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."multi_payment_batch" + ADD CONSTRAINT "multi_payment_batch_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: net_scan_log net_scan_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."net_scan_log" + ADD CONSTRAINT "net_scan_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: net_scan_task net_scan_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."net_scan_task" + ADD CONSTRAINT "net_scan_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: oa_message oa_message_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."oa_message" + ADD CONSTRAINT "oa_message_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: oa_setting oa_setting_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."oa_setting" + ADD CONSTRAINT "oa_setting_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: oa_setting oa_setting_setting_key_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."oa_setting" + ADD CONSTRAINT "oa_setting_setting_key_key" UNIQUE ("setting_key"); + + +-- +-- Name: occ_hazard_factor occ_hazard_factor_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."occ_hazard_factor" + ADD CONSTRAINT "occ_hazard_factor_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: occ_workplace_monitor occ_workplace_monitor_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."occ_workplace_monitor" + ADD CONSTRAINT "occ_workplace_monitor_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: operation_audit_log operation_audit_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."operation_audit_log" + ADD CONSTRAINT "operation_audit_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: opportunity_followup opportunity_followup_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."opportunity_followup" + ADD CONSTRAINT "opportunity_followup_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: opportunity opportunity_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."opportunity" + ADD CONSTRAINT "opportunity_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ops_emergency_supply ops_emergency_supply_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ops_emergency_supply" + ADD CONSTRAINT "ops_emergency_supply_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ops_haz_chem_request ops_haz_chem_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ops_haz_chem_request" + ADD CONSTRAINT "ops_haz_chem_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ops_xdept_push ops_xdept_push_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ops_xdept_push" + ADD CONSTRAINT "ops_xdept_push_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: org_branch org_branch_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."org_branch" + ADD CONSTRAINT "org_branch_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: patent_disclosure patent_disclosure_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent_disclosure" + ADD CONSTRAINT "patent_disclosure_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: patent_fee patent_fee_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent_fee" + ADD CONSTRAINT "patent_fee_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: patent_mid_file patent_mid_file_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent_mid_file" + ADD CONSTRAINT "patent_mid_file_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: patent patent_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."patent" + ADD CONSTRAINT "patent_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: payment payment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."payment" + ADD CONSTRAINT "payment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: personnel_cert personnel_cert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."personnel_cert" + ADD CONSTRAINT "personnel_cert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_bank_evaluation pmt_bank_evaluation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_bank_evaluation" + ADD CONSTRAINT "pmt_bank_evaluation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_bank_relation pmt_bank_relation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_bank_relation" + ADD CONSTRAINT "pmt_bank_relation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_collection_log pmt_collection_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_collection_log" + ADD CONSTRAINT "pmt_collection_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_contract_attachment pmt_contract_attachment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_contract_attachment" + ADD CONSTRAINT "pmt_contract_attachment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_contract_fee_item pmt_contract_fee_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_contract_fee_item" + ADD CONSTRAINT "pmt_contract_fee_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_cost_alloc_rule pmt_cost_alloc_rule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_cost_alloc_rule" + ADD CONSTRAINT "pmt_cost_alloc_rule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_financing_contract pmt_financing_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_financing_contract" + ADD CONSTRAINT "pmt_financing_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_inbound_receipt pmt_inbound_receipt_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_inbound_receipt" + ADD CONSTRAINT "pmt_inbound_receipt_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_internal_trans pmt_internal_trans_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_internal_trans" + ADD CONSTRAINT "pmt_internal_trans_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_loan_scheme pmt_loan_scheme_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_loan_scheme" + ADD CONSTRAINT "pmt_loan_scheme_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: pmt_payee_blacklist pmt_payee_blacklist_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."pmt_payee_blacklist" + ADD CONSTRAINT "pmt_payee_blacklist_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: policy_application policy_application_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."policy_application" + ADD CONSTRAINT "policy_application_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: policy policy_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."policy" + ADD CONSTRAINT "policy_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ppe_item ppe_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ppe_item" + ADD CONSTRAINT "ppe_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: price_item price_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."price_item" + ADD CONSTRAINT "price_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: project_budget_line project_budget_line_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."project_budget_line" + ADD CONSTRAINT "project_budget_line_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: project project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."project" + ADD CONSTRAINT "project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: project_task project_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."project_task" + ADD CONSTRAINT "project_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: publicity_task publicity_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."publicity_task" + ADD CONSTRAINT "publicity_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: publish_channel publish_channel_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."publish_channel" + ADD CONSTRAINT "publish_channel_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qms_audit_finding qms_audit_finding_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_audit_finding" + ADD CONSTRAINT "qms_audit_finding_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qms_audit qms_audit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_audit" + ADD CONSTRAINT "qms_audit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qms_document qms_document_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_document" + ADD CONSTRAINT "qms_document_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qms_management_review qms_management_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_management_review" + ADD CONSTRAINT "qms_management_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qms_record qms_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qms_record" + ADD CONSTRAINT "qms_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qsup_quality_lot qsup_quality_lot_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qsup_quality_lot" + ADD CONSTRAINT "qsup_quality_lot_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_achievement qual_achievement_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_achievement" + ADD CONSTRAINT "qual_achievement_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_cert_change qual_cert_change_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_cert_change" + ADD CONSTRAINT "qual_cert_change_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_cert qual_cert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_cert" + ADD CONSTRAINT "qual_cert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_decl_fee qual_decl_fee_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_decl_fee" + ADD CONSTRAINT "qual_decl_fee_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_decl_task qual_decl_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_decl_task" + ADD CONSTRAINT "qual_decl_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_declaration qual_declaration_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_declaration" + ADD CONSTRAINT "qual_declaration_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_elec_license qual_elec_license_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_elec_license" + ADD CONSTRAINT "qual_elec_license_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_risk_alert qual_risk_alert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_risk_alert" + ADD CONSTRAINT "qual_risk_alert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_safety_accident qual_safety_accident_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_safety_accident" + ADD CONSTRAINT "qual_safety_accident_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_usage qual_usage_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_usage" + ADD CONSTRAINT "qual_usage_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: qual_year_check qual_year_check_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_year_check" + ADD CONSTRAINT "qual_year_check_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_after_sales_feedback rd_after_sales_feedback_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_after_sales_feedback" + ADD CONSTRAINT "rd_after_sales_feedback_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_annual_budget rd_annual_budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_annual_budget" + ADD CONSTRAINT "rd_annual_budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_decl_plan rd_decl_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_decl_plan" + ADD CONSTRAINT "rd_decl_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_design_review rd_design_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_design_review" + ADD CONSTRAINT "rd_design_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_dev_project_budget rd_dev_project_budget_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_dev_project_budget" + ADD CONSTRAINT "rd_dev_project_budget_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_dev_project rd_dev_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_dev_project" + ADD CONSTRAINT "rd_dev_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_dev_wbs_task rd_dev_wbs_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_dev_wbs_task" + ADD CONSTRAINT "rd_dev_wbs_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_doc_signoff rd_doc_signoff_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_doc_signoff" + ADD CONSTRAINT "rd_doc_signoff_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_doc_version rd_doc_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_doc_version" + ADD CONSTRAINT "rd_doc_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_ebom rd_ebom_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_ebom" + ADD CONSTRAINT "rd_ebom_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_engineering_change rd_engineering_change_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_engineering_change" + ADD CONSTRAINT "rd_engineering_change_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_expense rd_expense_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_expense" + ADD CONSTRAINT "rd_expense_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_grant_disbursement rd_grant_disbursement_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_grant_disbursement" + ADD CONSTRAINT "rd_grant_disbursement_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_innovation_point rd_innovation_point_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_innovation_point" + ADD CONSTRAINT "rd_innovation_point_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_issue rd_issue_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_issue" + ADD CONSTRAINT "rd_issue_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_knowledge rd_knowledge_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_knowledge" + ADD CONSTRAINT "rd_knowledge_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_maintenance_task rd_maintenance_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_maintenance_task" + ADD CONSTRAINT "rd_maintenance_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_material rd_material_mat_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_material" + ADD CONSTRAINT "rd_material_mat_code_key" UNIQUE ("mat_code"); + + +-- +-- Name: rd_material rd_material_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_material" + ADD CONSTRAINT "rd_material_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_mobile_photo rd_mobile_photo_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_mobile_photo" + ADD CONSTRAINT "rd_mobile_photo_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_product_cert rd_product_cert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_product_cert" + ADD CONSTRAINT "rd_product_cert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_product_requirement rd_product_requirement_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_product_requirement" + ADD CONSTRAINT "rd_product_requirement_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_product_roadmap rd_product_roadmap_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_product_roadmap" + ADD CONSTRAINT "rd_product_roadmap_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_project rd_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_project" + ADD CONSTRAINT "rd_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_prototype_loan rd_prototype_loan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_prototype_loan" + ADD CONSTRAINT "rd_prototype_loan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_prototype_order rd_prototype_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_prototype_order" + ADD CONSTRAINT "rd_prototype_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_prototype_stock rd_prototype_stock_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_prototype_stock" + ADD CONSTRAINT "rd_prototype_stock_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_prototype_stock rd_prototype_stock_serial_no_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_prototype_stock" + ADD CONSTRAINT "rd_prototype_stock_serial_no_key" UNIQUE ("serial_no"); + + +-- +-- Name: rd_purchase_request rd_purchase_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_purchase_request" + ADD CONSTRAINT "rd_purchase_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_reuse_module rd_reuse_module_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_reuse_module" + ADD CONSTRAINT "rd_reuse_module_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_review_vote rd_review_vote_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_review_vote" + ADD CONSTRAINT "rd_review_vote_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_roadmap_item rd_roadmap_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_roadmap_item" + ADD CONSTRAINT "rd_roadmap_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_sci_tech_personnel rd_sci_tech_personnel_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_sci_tech_personnel" + ADD CONSTRAINT "rd_sci_tech_personnel_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_service_agency rd_service_agency_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_service_agency" + ADD CONSTRAINT "rd_service_agency_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_supplier_sample rd_supplier_sample_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_supplier_sample" + ADD CONSTRAINT "rd_supplier_sample_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_test_plan rd_test_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_test_plan" + ADD CONSTRAINT "rd_test_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_timesheet rd_timesheet_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_timesheet" + ADD CONSTRAINT "rd_timesheet_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rd_weekly_report rd_weekly_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rd_weekly_report" + ADD CONSTRAINT "rd_weekly_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: repayment_plan repayment_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."repayment_plan" + ADD CONSTRAINT "repayment_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: report_definition report_definition_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."report_definition" + ADD CONSTRAINT "report_definition_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: rule_config rule_config_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."rule_config" + ADD CONSTRAINT "rule_config_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: safety_check safety_check_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."safety_check" + ADD CONSTRAINT "safety_check_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: schedule_event schedule_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."schedule_event" + ADD CONSTRAINT "schedule_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: seal seal_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."seal" + ADD CONSTRAINT "seal_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: seal_use seal_use_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."seal_use" + ADD CONSTRAINT "seal_use_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: secret_access_log secret_access_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."secret_access_log" + ADD CONSTRAINT "secret_access_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sentiment_record sentiment_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sentiment_record" + ADD CONSTRAINT "sentiment_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_cost_month sewage_cost_month_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_cost_month" + ADD CONSTRAINT "sewage_cost_month_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_cost_saving_project sewage_cost_saving_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_cost_saving_project" + ADD CONSTRAINT "sewage_cost_saving_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_cross_dept_linkage sewage_cross_dept_linkage_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_cross_dept_linkage" + ADD CONSTRAINT "sewage_cross_dept_linkage_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_detection_report sewage_detection_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_detection_report" + ADD CONSTRAINT "sewage_detection_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_emergency_plan sewage_emergency_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_emergency_plan" + ADD CONSTRAINT "sewage_emergency_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_energy_log sewage_energy_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_energy_log" + ADD CONSTRAINT "sewage_energy_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_env_record sewage_env_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_env_record" + ADD CONSTRAINT "sewage_env_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_equipment sewage_equipment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_equipment" + ADD CONSTRAINT "sewage_equipment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_ext_lab_commission sewage_ext_lab_commission_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_ext_lab_commission" + ADD CONSTRAINT "sewage_ext_lab_commission_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_gov_report sewage_gov_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_gov_report" + ADD CONSTRAINT "sewage_gov_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_inflow_forecast sewage_inflow_forecast_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_inflow_forecast" + ADD CONSTRAINT "sewage_inflow_forecast_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_mobile_queue sewage_mobile_queue_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_mobile_queue" + ADD CONSTRAINT "sewage_mobile_queue_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_occ_health sewage_occ_health_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_occ_health" + ADD CONSTRAINT "sewage_occ_health_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_patrol_record sewage_patrol_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_patrol_record" + ADD CONSTRAINT "sewage_patrol_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_patrol_route sewage_patrol_route_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_patrol_route" + ADD CONSTRAINT "sewage_patrol_route_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_plant_benchmark sewage_plant_benchmark_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_plant_benchmark" + ADD CONSTRAINT "sewage_plant_benchmark_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_power_section_log sewage_power_section_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_power_section_log" + ADD CONSTRAINT "sewage_power_section_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_process_run sewage_process_run_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_process_run" + ADD CONSTRAINT "sewage_process_run_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_process_scheme sewage_process_scheme_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_process_scheme" + ADD CONSTRAINT "sewage_process_scheme_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_reagent_stock sewage_reagent_stock_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_reagent_stock" + ADD CONSTRAINT "sewage_reagent_stock_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_report_template sewage_report_template_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_report_template" + ADD CONSTRAINT "sewage_report_template_code_key" UNIQUE ("code"); + + +-- +-- Name: sewage_report_template sewage_report_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_report_template" + ADD CONSTRAINT "sewage_report_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_sampling_plan sewage_sampling_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_sampling_plan" + ADD CONSTRAINT "sewage_sampling_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_shift_handover sewage_shift_handover_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_shift_handover" + ADD CONSTRAINT "sewage_shift_handover_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_sludge_record sewage_sludge_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_sludge_record" + ADD CONSTRAINT "sewage_sludge_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_spare_part sewage_spare_part_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_spare_part" + ADD CONSTRAINT "sewage_spare_part_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sewage_work_order sewage_work_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_work_order" + ADD CONSTRAINT "sewage_work_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sfac_facility sfac_facility_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfac_facility" + ADD CONSTRAINT "sfac_facility_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sfty_investment sfty_investment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_investment" + ADD CONSTRAINT "sfty_investment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sfty_responsibility sfty_responsibility_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_responsibility" + ADD CONSTRAINT "sfty_responsibility_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sfty_training_enrollment sfty_training_enrollment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_training_enrollment" + ADD CONSTRAINT "sfty_training_enrollment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sfty_training sfty_training_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sfty_training" + ADD CONSTRAINT "sfty_training_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: staff_credential staff_credential_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_credential" + ADD CONSTRAINT "staff_credential_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: staff_dossier_item staff_dossier_item_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_dossier_item" + ADD CONSTRAINT "staff_dossier_item_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: staff_dossier staff_dossier_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_dossier" + ADD CONSTRAINT "staff_dossier_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: staff_self_request staff_self_request_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_self_request" + ADD CONSTRAINT "staff_self_request_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: standard_cost standard_cost_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."standard_cost" + ADD CONSTRAINT "standard_cost_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: std_application std_application_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."std_application" + ADD CONSTRAINT "std_application_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stl_bank_reconciliation stl_bank_reconciliation_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_bank_reconciliation" + ADD CONSTRAINT "stl_bank_reconciliation_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stl_forex_risk stl_forex_risk_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_forex_risk" + ADD CONSTRAINT "stl_forex_risk_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stl_fund_plan stl_fund_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_fund_plan" + ADD CONSTRAINT "stl_fund_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stl_fund_plan_submission stl_fund_plan_submission_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_fund_plan_submission" + ADD CONSTRAINT "stl_fund_plan_submission_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stl_internal_settle_rule stl_internal_settle_rule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_internal_settle_rule" + ADD CONSTRAINT "stl_internal_settle_rule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stl_payment_refund stl_payment_refund_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_payment_refund" + ADD CONSTRAINT "stl_payment_refund_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stl_settlement stl_settlement_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stl_settlement" + ADD CONSTRAINT "stl_settlement_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: stored_file stored_file_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."stored_file" + ADD CONSTRAINT "stored_file_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: supervision_inspection supervision_inspection_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supervision_inspection" + ADD CONSTRAINT "supervision_inspection_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: supervision_log supervision_log_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supervision_log" + ADD CONSTRAINT "supervision_log_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: supervision_project supervision_project_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supervision_project" + ADD CONSTRAINT "supervision_project_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: supplier supplier_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."supplier" + ADD CONSTRAINT "supplier_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: survey survey_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."survey" + ADD CONSTRAINT "survey_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_accident sv_accident_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_accident" + ADD CONSTRAINT "sv_accident_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_archive_transfer sv_archive_transfer_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_archive_transfer" + ADD CONSTRAINT "sv_archive_transfer_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_archive_transfer sv_archive_transfer_supervision_project_id_transfer_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_archive_transfer" + ADD CONSTRAINT "sv_archive_transfer_supervision_project_id_transfer_code_key" UNIQUE ("supervision_project_id", "transfer_code"); + + +-- +-- Name: sv_change_claim sv_change_claim_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_change_claim" + ADD CONSTRAINT "sv_change_claim_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_drawing_issue sv_drawing_issue_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_drawing_issue" + ADD CONSTRAINT "sv_drawing_issue_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_equipment_ledger sv_equipment_ledger_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_equipment_ledger" + ADD CONSTRAINT "sv_equipment_ledger_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_hidden_work sv_hidden_work_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_hidden_work" + ADD CONSTRAINT "sv_hidden_work_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_indep_claim sv_indep_claim_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_indep_claim" + ADD CONSTRAINT "sv_indep_claim_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_material_inspect sv_material_inspect_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_material_inspect" + ADD CONSTRAINT "sv_material_inspect_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_monthly_report sv_monthly_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_monthly_report" + ADD CONSTRAINT "sv_monthly_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_notice sv_notice_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_notice" + ADD CONSTRAINT "sv_notice_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_open_work_order sv_open_work_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_open_work_order" + ADD CONSTRAINT "sv_open_work_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_patrol_checkpoint sv_patrol_checkpoint_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_patrol_checkpoint" + ADD CONSTRAINT "sv_patrol_checkpoint_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_patrol_plan sv_patrol_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_patrol_plan" + ADD CONSTRAINT "sv_patrol_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_patrol_scheme sv_patrol_scheme_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_patrol_scheme" + ADD CONSTRAINT "sv_patrol_scheme_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_personal_cert sv_personal_cert_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_personal_cert" + ADD CONSTRAINT "sv_personal_cert_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_plan sv_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_plan" + ADD CONSTRAINT "sv_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_progress_plan sv_progress_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_progress_plan" + ADD CONSTRAINT "sv_progress_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_progress_task sv_progress_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_progress_task" + ADD CONSTRAINT "sv_progress_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_qualification sv_qualification_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_qualification" + ADD CONSTRAINT "sv_qualification_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_scheme sv_scheme_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_scheme" + ADD CONSTRAINT "sv_scheme_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_sequence_inspect sv_sequence_inspect_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_sequence_inspect" + ADD CONSTRAINT "sv_sequence_inspect_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sv_survey_verify sv_survey_verify_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_survey_verify" + ADD CONSTRAINT "sv_survey_verify_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sys_dept sys_dept_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_dept" + ADD CONSTRAINT "sys_dept_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sys_permission_node sys_permission_node_node_key_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_permission_node" + ADD CONSTRAINT "sys_permission_node_node_key_key" UNIQUE ("node_key"); + + +-- +-- Name: sys_permission_node sys_permission_node_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_permission_node" + ADD CONSTRAINT "sys_permission_node_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sys_role sys_role_code_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_role" + ADD CONSTRAINT "sys_role_code_key" UNIQUE ("code"); + + +-- +-- Name: sys_role_node sys_role_node_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_role_node" + ADD CONSTRAINT "sys_role_node_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sys_role sys_role_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_role" + ADD CONSTRAINT "sys_role_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sys_user sys_user_login_name_key; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_user" + ADD CONSTRAINT "sys_user_login_name_key" UNIQUE ("login_name"); + + +-- +-- Name: sys_user sys_user_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_user" + ADD CONSTRAINT "sys_user_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: sys_user_role sys_user_role_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_user_role" + ADD CONSTRAINT "sys_user_role_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: tax_filing tax_filing_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."tax_filing" + ADD CONSTRAINT "tax_filing_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: tech_achievement tech_achievement_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."tech_achievement" + ADD CONSTRAINT "tech_achievement_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: tech_contract tech_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."tech_contract" + ADD CONSTRAINT "tech_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: automation_log uk_automation_instance_rule; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."automation_log" + ADD CONSTRAINT "uk_automation_instance_rule" UNIQUE ("instance_id", "rule_key"); + + +-- +-- Name: legal_supplier_blacklist uk_legal_supplier_blacklist_name; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."legal_supplier_blacklist" + ADD CONSTRAINT "uk_legal_supplier_blacklist_name" UNIQUE ("supplier_name"); + + +-- +-- Name: audit_monitor_exception uk_monitor_exc_dedup; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."audit_monitor_exception" + ADD CONSTRAINT "uk_monitor_exc_dedup" UNIQUE ("dedup_key"); + + +-- +-- Name: org_branch uk_org_branch_code; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."org_branch" + ADD CONSTRAINT "uk_org_branch_code" UNIQUE ("code"); + + +-- +-- Name: sys_role_node uk_role_node; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_role_node" + ADD CONSTRAINT "uk_role_node" UNIQUE ("role_id", "node_id"); + + +-- +-- Name: sewage_cross_dept_linkage uk_sewage_linkage_event_source; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sewage_cross_dept_linkage" + ADD CONSTRAINT "uk_sewage_linkage_event_source" UNIQUE ("event_key", "source_id"); + + +-- +-- Name: staff_dossier uk_staff_dossier_employee_no; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."staff_dossier" + ADD CONSTRAINT "uk_staff_dossier_employee_no" UNIQUE ("employee_no"); + + +-- +-- Name: sv_monthly_report uk_sv_monthly_report; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sv_monthly_report" + ADD CONSTRAINT "uk_sv_monthly_report" UNIQUE ("supervision_project_id", "month"); + + +-- +-- Name: sys_user_role uk_user_role; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."sys_user_role" + ADD CONSTRAINT "uk_user_role" UNIQUE ("user_id", "role_id"); + + +-- +-- Name: decl_material_link uq_decl_material_link; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."decl_material_link" + ADD CONSTRAINT "uq_decl_material_link" UNIQUE ("declaration_id", "material_type"); + + +-- +-- Name: crm_opp_stage_config uq_opp_stage_name; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."crm_opp_stage_config" + ADD CONSTRAINT "uq_opp_stage_name" UNIQUE ("stage_name"); + + +-- +-- Name: qual_achievement uq_qual_achievement_code; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."qual_achievement" + ADD CONSTRAINT "uq_qual_achievement_code" UNIQUE ("code"); + + +-- +-- Name: voucher voucher_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."voucher" + ADD CONSTRAINT "voucher_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wastewater_client wastewater_client_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wastewater_client" + ADD CONSTRAINT "wastewater_client_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: water_quality_record water_quality_record_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."water_quality_record" + ADD CONSTRAINT "water_quality_record_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_application wm_application_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_application" + ADD CONSTRAINT "wm_application_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_decl_plan wm_decl_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_decl_plan" + ADD CONSTRAINT "wm_decl_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_decl_template wm_decl_template_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_decl_template" + ADD CONSTRAINT "wm_decl_template_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_doc_version wm_doc_version_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_doc_version" + ADD CONSTRAINT "wm_doc_version_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_event wm_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_event" + ADD CONSTRAINT "wm_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_fee wm_fee_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_fee" + ADD CONSTRAINT "wm_fee_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_gov_subsidy wm_gov_subsidy_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_gov_subsidy" + ADD CONSTRAINT "wm_gov_subsidy_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_promotion wm_promotion_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_promotion" + ADD CONSTRAINT "wm_promotion_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_review wm_review_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_review" + ADD CONSTRAINT "wm_review_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_reward_config wm_reward_config_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_reward_config" + ADD CONSTRAINT "wm_reward_config_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_reward wm_reward_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_reward" + ADD CONSTRAINT "wm_reward_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_usage wm_usage_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_usage" + ADD CONSTRAINT "wm_usage_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: wm_work_method wm_work_method_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."wm_work_method" + ADD CONSTRAINT "wm_work_method_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: work_order work_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."work_order" + ADD CONSTRAINT "work_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: work_plan work_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."work_plan" + ADD CONSTRAINT "work_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_alert_rule ww_alert_rule_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_alert_rule" + ADD CONSTRAINT "ww_alert_rule_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_anomaly_case ww_anomaly_case_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_anomaly_case" + ADD CONSTRAINT "ww_anomaly_case_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_client_attachment ww_client_attachment_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_client_attachment" + ADD CONSTRAINT "ww_client_attachment_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_discharge_bill ww_discharge_bill_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_discharge_bill" + ADD CONSTRAINT "ww_discharge_bill_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_discharge_contract ww_discharge_contract_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_discharge_contract" + ADD CONSTRAINT "ww_discharge_contract_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_exceed_event ww_exceed_event_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_exceed_event" + ADD CONSTRAINT "ww_exceed_event_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_hazwaste_manifest ww_hazwaste_manifest_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_hazwaste_manifest" + ADD CONSTRAINT "ww_hazwaste_manifest_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_maint_order ww_maint_order_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_maint_order" + ADD CONSTRAINT "ww_maint_order_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_maint_plan ww_maint_plan_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_maint_plan" + ADD CONSTRAINT "ww_maint_plan_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_msds_file ww_msds_file_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_msds_file" + ADD CONSTRAINT "ww_msds_file_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_process_unit ww_process_unit_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_process_unit" + ADD CONSTRAINT "ww_process_unit_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_sampling_task ww_sampling_task_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_sampling_task" + ADD CONSTRAINT "ww_sampling_task_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: ww_service_report ww_service_report_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY "public"."ww_service_report" + ADD CONSTRAINT "ww_service_report_pkey" PRIMARY KEY ("id"); + + +-- +-- Name: idx_biz_type; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_biz_type" ON "public"."biz_record" USING "btree" ("biz_type"); + + +-- +-- Name: idx_collab_update_doc; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_collab_update_doc" ON "public"."collab_doc_update" USING "btree" ("doc_id", "seq"); + + +-- +-- Name: idx_fts_index_body_trgm; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_fts_index_body_trgm" ON "public"."fts_index" USING "gin" ("body" "public"."gin_trgm_ops"); + + +-- +-- Name: idx_fts_index_title_trgm; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_fts_index_title_trgm" ON "public"."fts_index" USING "gin" ("title" "public"."gin_trgm_ops"); + + +-- +-- Name: idx_lealog_action; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_lealog_action" ON "public"."lab_eln_access_log" USING "btree" ("action"); + + +-- +-- Name: idx_lealog_elnid; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_lealog_elnid" ON "public"."lab_eln_access_log" USING "btree" ("eln_id"); + + +-- +-- Name: idx_lealog_occurred; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_lealog_occurred" ON "public"."lab_eln_access_log" USING "btree" ("occurred_at"); + + +-- +-- Name: idx_lealog_operator; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_lealog_operator" ON "public"."lab_eln_access_log" USING "btree" ("operator"); + + +-- +-- Name: idx_oal_occurred; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_oal_occurred" ON "public"."operation_audit_log" USING "btree" ("occurred_at"); + + +-- +-- Name: idx_oal_operator; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_oal_operator" ON "public"."operation_audit_log" USING "btree" ("operator"); + + +-- +-- Name: idx_oal_resource; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX "idx_oal_resource" ON "public"."operation_audit_log" USING "btree" ("resource_type", "resource_id"); + + +-- +-- PostgreSQL database dump complete +-- diff --git a/oa-backend/src/test/java/com/kaidi/oa/service/SystemUpdateServiceTest.java b/oa-backend/src/test/java/com/kaidi/oa/service/SystemUpdateServiceTest.java new file mode 100644 index 0000000..0e84f7c --- /dev/null +++ b/oa-backend/src/test/java/com/kaidi/oa/service/SystemUpdateServiceTest.java @@ -0,0 +1,132 @@ +package com.kaidi.oa.service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.kaidi.oa.common.ApiException; +import com.kaidi.oa.config.UpdateProperties; +import com.sun.net.httpserver.HttpServer; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.boot.info.BuildProperties; + +import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Instant; +import java.util.Properties; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +class SystemUpdateServiceTest { + + @Test + void comparesReleaseVersionsWithoutLexicographicMistakes() { + assertThat(SystemUpdateService.compareVersions("v0.10.0", "0.9.9")).isPositive(); + assertThat(SystemUpdateService.compareVersions("1.0.0", "1.0.0-rc.1")).isPositive(); + assertThat(SystemUpdateService.compareVersions("1.2", "1.2.0")).isZero(); + assertThat(SystemUpdateService.compareVersions("1.0.0+build.2", "1.0.0+build.1")).isZero(); + assertThat(SystemUpdateService.compareVersions("1.0.0-alpha.10", "1.0.0-alpha.2")).isPositive(); + assertThat(SystemUpdateService.compareVersions("1.0.0-alpha.1", "1.0.0-alpha.beta")).isNegative(); + assertThat(SystemUpdateService.compareVersions("999999999999999999999.0.0", "2.0.0")).isPositive(); + assertThat(SystemUpdateService.compareVersions("1.0.0", "dev")).isPositive(); + } + + @Test + void checksLatestGiteaReleaseAndRequiresSignedAssetSet() throws Exception { + HttpServer server = HttpServer.create(new InetSocketAddress("127.0.0.1", 0), 0); + server.createContext("/api/v1/repos/awaioi/ERP/releases/latest", exchange -> { + byte[] body = """ + { + "tag_name": "v0.2.0", + "body": "PostgreSQL production release", + "draft": false, + "prerelease": false, + "published_at": "2026-08-03T10:00:00Z", + "assets": [ + {"name":"kaidi-erp-0.2.0.tar.gz","browser_download_url":"https://example.test/app","size":123}, + {"name":"SHA256SUMS","browser_download_url":"https://example.test/sums","size":64}, + {"name":"SHA256SUMS.sig","browser_download_url":"https://example.test/sig","size":64} + ] + } + """.getBytes(StandardCharsets.UTF_8); + exchange.getResponseHeaders().add("Content-Type", "application/json"); + exchange.sendResponseHeaders(200, body.length); + exchange.getResponseBody().write(body); + exchange.close(); + }); + server.start(); + try { + UpdateProperties properties = configuredProperties(server.getAddress().getPort()); + SystemUpdateService service = service(properties, "0.1.0"); + + SystemUpdateService.UpdateStatus status = service.check(); + + assertThat(status.updateAvailable()).isTrue(); + assertThat(status.currentVersion()).isEqualTo("0.1.0"); + assertThat(status.latestVersion()).isEqualTo("0.2.0"); + assertThat(status.assets()).extracting(SystemUpdateService.ReleaseAsset::name) + .containsExactly("kaidi-erp-0.2.0.tar.gz", "SHA256SUMS", "SHA256SUMS.sig"); + } finally { + server.stop(0); + } + } + + @Test + void rejectsPlainHttpUnlessDevelopmentOverrideIsExplicit() { + UpdateProperties properties = configuredProperties(1); + properties.setAllowInsecureHttp(false); + SystemUpdateService service = service(properties, "0.1.0"); + + assertThatThrownBy(service::check) + .isInstanceOf(ApiException.class) + .hasMessageContaining("HTTPS"); + } + + @Test + void persistedHelperStateComputesAvailabilityFromVersionAndKeepsTimestamp() throws Exception { + Path stateFile = Files.createTempFile("system-update-state-", ".json"); + try { + UpdateProperties properties = configuredProperties(1); + properties.setStateFile(stateFile.toString()); + SystemUpdateService service = service(properties, "0.2.0"); + + Files.writeString(stateFile, """ + {"phase":"FAILED","progress":0,"message":"update failed",\ + "version":"0.2.0","updatedAt":"2026-08-03T12:34:56Z"} + """); + SystemUpdateService.UpdateStatus failed = service.status(); + + assertThat(failed.updateAvailable()).isFalse(); + assertThat(failed.checkedAt()).isEqualTo(Instant.parse("2026-08-03T12:34:56Z")); + + Files.writeString(stateFile, """ + {"phase":"ROLLED_BACK","progress":100,"message":"rolled back",\ + "version":"0.3.0","updatedAt":"2026-08-03T12:35:56Z"} + """); + assertThat(service.status().updateAvailable()).isTrue(); + } finally { + Files.deleteIfExists(stateFile); + } + } + + private static UpdateProperties configuredProperties(int port) { + UpdateProperties properties = new UpdateProperties(); + properties.setEnabled(true); + properties.setAllowInsecureHttp(true); + properties.setGiteaBaseUrl("http://127.0.0.1:" + port); + properties.setRepository("awaioi/ERP"); + return properties; + } + + @SuppressWarnings("unchecked") + private static SystemUpdateService service(UpdateProperties properties, String version) { + Properties buildValues = new Properties(); + buildValues.setProperty("version", version); + ObjectProvider provider = mock(ObjectProvider.class); + when(provider.getIfAvailable()).thenReturn(new BuildProperties(buildValues)); + return new SystemUpdateService(properties, new ObjectMapper(), provider); + } +} diff --git a/oa-itest.sh b/oa-itest.sh index 5d0a979..df77990 100644 --- a/oa-itest.sh +++ b/oa-itest.sh @@ -5,12 +5,28 @@ set -uo pipefail B="${OA:-http://localhost:8090}/api/oa" TMP=$(mktemp -d) +trap 'rm -rf "$TMP"' EXIT pass=0; fail=0; total=0 +TOKEN="" J(){ python3 -c "import json,sys;d=json.load(open('$1'));print(eval(sys.argv[1]))" "$2" 2>/dev/null; } chk(){ total=$((total+1)); if [ "$2" = "$3" ]; then pass=$((pass+1)); printf " ok %-46s %s\n" "$1" "$3"; else fail=$((fail+1)); printf " XX %-46s got=%s want=%s\n" "$1" "$2" "$3"; fi; } chkge(){ total=$((total+1)); if [ "${2:-0}" -ge "$3" ] 2>/dev/null; then pass=$((pass+1)); printf " ok %-46s >=%s (=%s)\n" "$1" "$3" "$2"; else fail=$((fail+1)); printf " XX %-46s got=%s want>=%s\n" "$1" "$2" "$3"; fi; } -GET(){ curl -s -o "$TMP/r.json" -w "%{http_code}" "$B/$1"; } -POST(){ curl -s -o "$TMP/r.json" -w "%{http_code}" -X POST "$B/$1" -H 'Content-Type: application/json' -d "$2"; } +GET(){ + if [ -n "$TOKEN" ]; then + curl -sS -H "Authorization: Bearer $TOKEN" -o "$TMP/r.json" -w "%{http_code}" "$B/$1" + else + curl -sS -o "$TMP/r.json" -w "%{http_code}" "$B/$1" + fi +} +POST(){ + if [ -n "$TOKEN" ]; then + curl -sS -H "Authorization: Bearer $TOKEN" -o "$TMP/r.json" -w "%{http_code}" \ + -X POST "$B/$1" -H 'Content-Type: application/json' -d "$2" + else + curl -sS -o "$TMP/r.json" -w "%{http_code}" \ + -X POST "$B/$1" -H 'Content-Type: application/json' -d "$2" + fi +} echo "== AUTH ==" code=$(POST auth/login '{"loginName":"admin","password":"123456"}'); chk "login admin valid" "$(J $TMP/r.json "d['code']")" 0 @@ -19,7 +35,7 @@ code=$(POST auth/login '{"loginName":"admin","password":"wrong"}'); chk "login w code=$(POST auth/login '{"loginName":"ghost","password":"x"}'); chk "login unknown user -> code!=0" "$(J $TMP/r.json "1 if d['code']!=0 else 0")" 1 echo "== READ ENDPOINTS (all should code=0) ==" -for ep in "health" "form-templates" "form-templates?category=财务审批" "tasks?type=todo" "tasks?type=done" "tasks?type=sent" "tasks?type=draft" "meetings" "meeting-rooms" "minutes" "schedule-events" "announcements" "announcements?category=公告" "folders/tree" "documents" "users" "depts/tree" "roles"; do +for ep in "health" "form-templates" "form-templates?category=%E8%B4%A2%E5%8A%A1%E5%AE%A1%E6%89%B9" "tasks?type=todo" "tasks?type=done" "tasks?type=sent" "tasks?type=draft" "meetings" "meeting-rooms" "minutes" "schedule-events" "announcements" "announcements?category=%E5%85%AC%E5%91%8A" "folders/tree" "documents" "users" "depts/tree" "roles"; do GET "$ep" >/dev/null; chk "GET $ep" "$(J $TMP/r.json "d['code']")" 0 done @@ -61,12 +77,11 @@ POST "form-instances/$DID/send" '' >/dev/null; chk "send draft -> 待办" "$(J $ POST "form-instances/$DID/send" '' >/dev/null; chk "re-send -> 400" "$(J $TMP/r.json "d['code']")" 400 echo "== WRITE: meeting / schedule / announcement create ==" -POST "meetings" '{"subject":"itest会议","startTime":"2026-07-01T02:00:00Z","endTime":"2026-07-01T03:00:00Z","roomId":1,"organizer":"itest","status":"已预定"}' >/dev/null; chk "createMeeting code=0" "$(J $TMP/r.json "d['code']")" 0 +POST "meetings" '{"subject":"itest会议","startTime":"2026-07-01T02:00:00Z","endTime":"2026-07-01T03:00:00Z","organizer":"itest","status":"已预定"}' >/dev/null; chk "createMeeting code=0" "$(J $TMP/r.json "d['code']")" 0 POST "schedule-events" '{"title":"itest事件","type":"会议","startTime":"2026-07-01T02:00:00Z","endTime":"2026-07-01T03:00:00Z","owner":"itest"}' >/dev/null; chk "createEvent code=0" "$(J $TMP/r.json "d['code']")" 0 POST "announcements" '{"category":"公告","title":"itest公告","content":"x","author":"itest","top":false}' >/dev/null; chk "createAnnouncement code=0" "$(J $TMP/r.json "d['code']")" 0 POST "form-templates" '{"name":"itest模板","category":"测试","org":"信息中心","form":{"title":"t","rows":[]},"flow":{"nodes":[],"edges":[]}}' >/dev/null; chk "createTemplate code=0" "$(J $TMP/r.json "d['code']")" 0 -rm -rf "$TMP" echo pct=$(python3 -c "print(round($pass/$total*100,1))") printf "RESULT: %d/%d passed (%.1f%%), %d failed\n" "$pass" "$total" "$pct" "$fail" diff --git a/oa-smoke.sh b/oa-smoke.sh index bedffc4..99d9244 100644 --- a/oa-smoke.sh +++ b/oa-smoke.sh @@ -8,7 +8,10 @@ set -uo pipefail OA="${OA:-http://localhost:8090}" B="$OA/api/oa" +LOGIN_NAME="${OA_LOGIN_NAME:-admin}" +LOGIN_PASSWORD="${OA_LOGIN_PASSWORD:-123456}" pass=0; fail=0 +TOKEN="" jqget() { python3 -c "import sys,json;d=json.load(sys.stdin);print(eval('d'+sys.argv[1]))" "$1" 2>/dev/null; } step() { printf "\n\033[1m== %s ==\033[0m\n" "$1"; } @@ -20,8 +23,18 @@ H=$(curl -s "$B/health") echo " $H" echo "$H" | grep -q '"code":0' && ok "health code=0" || no "health" -step "2. list form-templates" -T=$(curl -s "$B/form-templates") +step "2. authenticate" +L=$(curl -sS -X POST "$B/auth/login" -H 'Content-Type: application/json' \ + -d "{\"loginName\":\"$LOGIN_NAME\",\"password\":\"$LOGIN_PASSWORD\"}") +TOKEN=$(echo "$L" | jqget "['data']['token']") +if [ -n "${TOKEN:-}" ] && [ "$TOKEN" != "None" ]; then + ok "authenticated as $LOGIN_NAME" +else + no "login failed: $L" +fi + +step "3. list form-templates" +T=$(curl -sS -H "Authorization: Bearer $TOKEN" "$B/form-templates") N=$(echo "$T" | jqget "['data'].__len__()") echo " templates returned: ${N:-?}" [ "${N:-0}" -ge 1 ] 2>/dev/null && ok "got >=1 template" || no "no templates seeded" @@ -29,8 +42,8 @@ TPL=$(echo "$T" | jqget "['data'][0]['id']") TPLNAME=$(echo "$T" | jqget "['data'][0]['name']") echo " using template: $TPL ($TPLNAME)" -step "3. submit a form-instance" -S=$(curl -s -X POST "$B/form-instances" -H 'Content-Type: application/json' \ +step "4. submit a form-instance" +S=$(curl -sS -H "Authorization: Bearer $TOKEN" -X POST "$B/form-instances" -H 'Content-Type: application/json' \ -d "{\"templateId\":\"$TPL\",\"data\":{\"_smoke\":\"1\"},\"title\":\"冒烟测试事项\"}") ID=$(echo "$S" | jqget "['data']['id']") ST=$(echo "$S" | jqget "['data']['status']") @@ -38,16 +51,16 @@ NODE=$(echo "$S" | jqget "['data']['currentNode']") echo " instance id=$ID status=$ST node=$NODE" [ -n "${ID:-}" ] && [ "$ID" != "None" ] && ok "submitted, got id" || no "submit failed: $S" -step "4. get instance detail (template+flow+trace)" -D=$(curl -s "$B/form-instances/$ID") +step "5. get instance detail (template+flow+trace)" +D=$(curl -sS -H "Authorization: Bearer $TOKEN" "$B/form-instances/$ID") TRN=$(echo "$D" | jqget "['data']['trace'].__len__()") HASFLOW=$(echo "$D" | jqget "(1 if d['data'].get('flow') else 0)") echo " trace steps=$TRN hasFlow=$HASFLOW" [ "${TRN:-0}" -ge 1 ] 2>/dev/null && ok "trace has 发起 step" || no "no trace" -step "5. advance 同意 until 办结 (max 8 hops)" +step "6. advance 同意 until 办结 (max 8 hops)" for i in $(seq 1 8); do - A=$(curl -s -X POST "$B/form-instances/$ID/advance" -H 'Content-Type: application/json' \ + A=$(curl -sS -H "Authorization: Bearer $TOKEN" -X POST "$B/form-instances/$ID/advance" -H 'Content-Type: application/json' \ -d '{"action":"同意","opinion":"冒烟同意"}') ST=$(echo "$A" | jqget "['data']['status']") NODE=$(echo "$A" | jqget "['data']['currentNode']") @@ -56,9 +69,9 @@ for i in $(seq 1 8); do done [ "${ST:-}" = "已办结" ] && ok "reached 已办结" || no "did not finish (status=$ST)" -step "6. list work boxes (GET /tasks?type=todo|done|sent|draft)" +step "7. list work boxes (GET /tasks?type=todo|done|sent|draft)" for box in todo done sent draft; do - R=$(curl -s "$B/tasks?type=$box") + R=$(curl -sS -H "Authorization: Bearer $TOKEN" "$B/tasks?type=$box") C=$(echo "$R" | jqget "['data'].__len__()") if echo "$R" | grep -q '"code":0'; then echo " type=$box -> ${C:-0} items"; pass=$((pass+1)) @@ -67,9 +80,9 @@ for box in todo done sent draft; do fi done -step "7. depts tree + users + announcements (module endpoints)" +step "8. depts tree + users + announcements (module endpoints)" for ep in "depts/tree" "folders/tree"; do - R=$(curl -s "$B/$ep") + R=$(curl -sS -H "Authorization: Bearer $TOKEN" "$B/$ep") echo "$R" | grep -q '"code":0' && ok "$ep ok" || no "$ep ($(echo "$R" | head -c 60))" done diff --git a/ofbiz-framework/plugins/modern-ui/app/src/data/oaModules.ts b/ofbiz-framework/plugins/modern-ui/app/src/data/oaModules.ts index 236ba48..d10b76d 100644 --- a/ofbiz-framework/plugins/modern-ui/app/src/data/oaModules.ts +++ b/ofbiz-framework/plugins/modern-ui/app/src/data/oaModules.ts @@ -98,6 +98,7 @@ export const oaModules: OaModule[] = [ { key: 'workbench', label: '工作台', kind: 'portal', path: '/appdev/workbench' }, { key: 'appmgr', label: '应用管理中心', kind: 'list', path: '/appdev/appmgr' }, { key: 'ops', label: '运维中心', kind: 'settings', path: '/appdev/ops' }, + { key: 'update', label: '系统更新', kind: 'settings', path: '/appdev/update' }, { key: 'monitor', label: '监测中心', kind: 'report', path: '/appdev/monitor' }, { key: 'aiassist', label: 'AI 助手', kind: 'portal', path: '/appdev/aiassist' }, { key: 'ruleconfig', label: '联动规则配置', kind: 'list', path: '/appdev/ruleconfig' } diff --git a/ofbiz-framework/plugins/modern-ui/app/src/oa/api/http.ts b/ofbiz-framework/plugins/modern-ui/app/src/oa/api/http.ts index a26edef..03e9852 100644 --- a/ofbiz-framework/plugins/modern-ui/app/src/oa/api/http.ts +++ b/ofbiz-framework/plugins/modern-ui/app/src/oa/api/http.ts @@ -75,7 +75,15 @@ export interface RequestOptions { } function buildUrl(path: string, query?: RequestOptions['query']): string { - const base = path.startsWith('http') ? path : OA_API_BASE + (path.startsWith('/') ? path : '/' + path) + // Older generated pages sometimes pass the already-prefixed /api/oa path. + // Normalize it so both call styles resolve to the same backend endpoint. + const relativePath = OA_API_BASE.endsWith('/api/oa') + && (path === '/api/oa' || path.startsWith('/api/oa/')) + ? path.slice('/api/oa'.length) || '/' + : path + const base = relativePath.startsWith('http') + ? relativePath + : OA_API_BASE + (relativePath.startsWith('/') ? relativePath : '/' + relativePath) if (!query) return base const usp = new URLSearchParams() for (const [k, v] of Object.entries(query)) { diff --git a/ofbiz-framework/plugins/modern-ui/app/src/oa/api/index.ts b/ofbiz-framework/plugins/modern-ui/app/src/oa/api/index.ts index eee0939..9fd4a2b 100644 --- a/ofbiz-framework/plugins/modern-ui/app/src/oa/api/index.ts +++ b/ofbiz-framework/plugins/modern-ui/app/src/oa/api/index.ts @@ -54,13 +54,14 @@ import * as designApi from './design' import * as engExtApi from './engext' import * as governanceApi from './governance' import * as alertsApi from './alerts' +import * as updateApi from './update' export { authApi, templateApi, instanceApi, meetingApi, scheduleApi, announcementApi, docApi, orgApi, projectApi, collabDocApi, communityApi, tripApi, reportApi, reportDefApi, masterApi, paymentApi, sealUseApi, archiveApi, crmApi, ehsApi, budgetApi, bidApi, intelApi, rdApi, contractCenterApi, costingApi, crawlApi, searchApi, fundPoolApi, rdExtraApi, qhseApi, opsApi, mfgApi, financeApi, labApi, designApi, engExtApi, - governanceApi, alertsApi + governanceApi, alertsApi, updateApi } export const oaApi = { @@ -186,7 +187,11 @@ export const oaApi = { // 监测中心(应用定制平台运行聚合) getAppMonitoring: reportApi.getAppMonitoring, // 统一预警(全平台期限/异常聚合) - listAlerts: alertsApi.listAlerts + listAlerts: alertsApi.listAlerts, + // 系统更新 + getSystemUpdateStatus: updateApi.getSystemUpdateStatus, + checkSystemUpdate: updateApi.checkSystemUpdate, + installSystemUpdate: updateApi.installSystemUpdate } export type { OaSession } from './auth' @@ -211,6 +216,7 @@ export type { ReportRunRow, ReportRunResult } from './reportdefs' export type { Alert } from './alerts' +export type { SystemUpdateStatus, UpdatePhase, ReleaseAsset } from './update' export type { CompanySubject, Contract, Supplier, Customer, BankAccount, Seal, Invoice, ContractMilestone } from './masterdata' diff --git a/ofbiz-framework/plugins/modern-ui/app/src/oa/api/update.ts b/ofbiz-framework/plugins/modern-ui/app/src/oa/api/update.ts new file mode 100644 index 0000000..5ff84e3 --- /dev/null +++ b/ofbiz-framework/plugins/modern-ui/app/src/oa/api/update.ts @@ -0,0 +1,49 @@ +import { http } from './http' + +export type UpdatePhase = + | 'IDLE' + | 'CHECKING' + | 'AVAILABLE' + | 'UP_TO_DATE' + | 'STARTING' + | 'DOWNLOADING' + | 'VERIFYING' + | 'INSTALLING' + | 'RESTARTING' + | 'SUCCEEDED' + | 'ROLLING_BACK' + | 'ROLLED_BACK' + | 'FAILED' + +export interface ReleaseAsset { + name: string + downloadUrl: string + size: number +} + +export interface SystemUpdateStatus { + configured: boolean + currentVersion: string + latestVersion: string | null + updateAvailable: boolean + phase: UpdatePhase + progress: number + message: string + checkedAt: string | null + publishedAt: string | null + releaseNotes: string + assets: ReleaseAsset[] + error: string | null +} + +export function getSystemUpdateStatus() { + return http.get('/system-update/status') +} + +export function checkSystemUpdate() { + return http.post('/system-update/check', undefined, { timeoutMs: 30000 }) +} + +export function installSystemUpdate(version: string) { + return http.post('/system-update/install', { version }, { timeoutMs: 30000 }) +} diff --git a/ofbiz-framework/plugins/modern-ui/app/src/oa/pages/appdev/update.vue b/ofbiz-framework/plugins/modern-ui/app/src/oa/pages/appdev/update.vue new file mode 100644 index 0000000..27bf764 --- /dev/null +++ b/ofbiz-framework/plugins/modern-ui/app/src/oa/pages/appdev/update.vue @@ -0,0 +1,326 @@ + + + + + diff --git a/ofbiz-framework/plugins/modern-ui/app/src/oa/pages/audit/dataaggregate.vue b/ofbiz-framework/plugins/modern-ui/app/src/oa/pages/audit/dataaggregate.vue index 2f9e69c..6c639fe 100644 --- a/ofbiz-framework/plugins/modern-ui/app/src/oa/pages/audit/dataaggregate.vue +++ b/ofbiz-framework/plugins/modern-ui/app/src/oa/pages/audit/dataaggregate.vue @@ -1,5 +1,5 @@