[INFO] cloning repository https://github.com/Zymid/compease-backend
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zymid/compease-backend" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZymid%2Fcompease-backend", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZymid%2Fcompease-backend'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c8993f2709ca0cab73de48e518b9b062f33277ff
[INFO] checking Zymid/compease-backend against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZymid%2Fcompease-backend" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Zymid/compease-backend
[INFO] finished tweaking git repo https://github.com/Zymid/compease-backend
[INFO] tweaked toml for git repo https://github.com/Zymid/compease-backend written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Zymid/compease-backend on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Zymid/compease-backend already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_filter v1.0.1
[INFO] [stderr]   Downloaded cc v1.2.59
[INFO] [stderr]   Downloaded bytestring v1.5.0
[INFO] [stderr]   Downloaded env_logger v0.11.10
[INFO] [stderr]   Downloaded actix-router v0.5.4
[INFO] [stderr]   Downloaded indexmap v2.13.1
[INFO] [stderr]   Downloaded actix-http v3.12.0
[INFO] [stderr]   Downloaded tokio v1.51.0
[INFO] [stderr]   Downloaded actix-rt v2.11.0
[INFO] [stderr]   Downloaded actix-web v4.13.0
[INFO] [stderr]   Downloaded fastrand v2.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 29c8ce584a73619919144cf215baf2affa43b71d65e5b21796aca6298da26f1a
[INFO] running `Command { std: "docker" "start" "-a" "29c8ce584a73619919144cf215baf2affa43b71d65e5b21796aca6298da26f1a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "29c8ce584a73619919144cf215baf2affa43b71d65e5b21796aca6298da26f1a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "29c8ce584a73619919144cf215baf2affa43b71d65e5b21796aca6298da26f1a", kill_on_drop: false }`
[INFO] [stdout] 29c8ce584a73619919144cf215baf2affa43b71d65e5b21796aca6298da26f1a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2bf9c4818367ac96dd3bd4ffc0486b3509b998598482f2e88a4b499c4d2c9368
[INFO] running `Command { std: "docker" "start" "-a" "2bf9c4818367ac96dd3bd4ffc0486b3509b998598482f2e88a4b499c4d2c9368", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]     Checking num-traits v0.2.19
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking tokio v1.51.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]     Checking indexmap v2.13.1
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling sqlformat v0.2.6
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]     Checking local-waker v0.1.4
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling webpki-roots v0.25.4
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling rsa v0.9.10
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling fastrand v2.4.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking actix-utils v3.0.1
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking actix-rt v2.11.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling bytestring v1.5.0
[INFO] [stderr]     Checking actix-service v2.0.3
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling actix-router v0.5.4
[INFO] [stderr]     Checking local-channel v0.1.5
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking actix-server v2.6.0
[INFO] [stderr]     Checking blowfish v0.9.1
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]     Checking impl-more v0.1.9
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]     Checking jiff v0.2.23
[INFO] [stderr]     Checking bcrypt v0.15.1
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]    Compiling sqlx-core v0.7.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking actix-http v3.12.0
[INFO] [stderr]    Compiling sqlx-mysql v0.7.4
[INFO] [stderr]     Checking actix-web v4.13.0
[INFO] [stderr]    Compiling sqlx-macros-core v0.7.4
[INFO] [stderr]    Compiling sqlx-macros v0.7.4
[INFO] [stderr]     Checking sqlx v0.7.4
[INFO] [stderr]     Checking compease v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variants `Unauthorized`, `Conflict`, `CertificateAlreadyExists`, and `AIResponseParseError` are never constructed
[INFO] [stdout]   --> src/error.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ErrorCode {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     Unauthorized = 1003,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 22 |     Forbidden = 1004,
[INFO] [stdout] 23 |     Conflict = 1005,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     CertificateAlreadyExists = 3006,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     AIServiceUnavailable = 4001,
[INFO] [stdout] 35 |     AIResponseParseError = 4002,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorCode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AIService` is never constructed
[INFO] [stdout]   --> src/error.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum AppError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     AIService(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppErrorWithDetails` is never constructed
[INFO] [stdout]    --> src/error.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct AppErrorWithDetails {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReviewCertificateRequest` is never constructed
[INFO] [stdout]   --> src/handlers/certificate.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ReviewCertificateRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditLog` is never constructed
[INFO] [stdout]  --> src/models/audit.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AuditLog {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuditType` is never used
[INFO] [stdout]   --> src/models/audit.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum AuditType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuditAction` is never used
[INFO] [stdout]   --> src/models/audit.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum AuditAction {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Certificate` is never constructed
[INFO] [stdout]  --> src/models/certificate.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Certificate {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `VerifyStatus` is never used
[INFO] [stdout]   --> src/models/certificate.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum VerifyStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendSession` is never constructed
[INFO] [stdout]   --> src/models/competition.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct RecommendSession {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendItem` is never constructed
[INFO] [stdout]   --> src/models/competition.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct RecommendItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QaLog` is never constructed
[INFO] [stdout]   --> src/models/competition.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct QaLog {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TeacherDetail` is never constructed
[INFO] [stdout]   --> src/models/user.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct TeacherDetail {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditRepository` is never constructed
[INFO] [stdout]  --> src/repository/audit_repository.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct AuditRepository;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create` and `find_by_target` are never used
[INFO] [stdout]   --> src/repository/audit_repository.rs:8:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AuditRepository {
[INFO] [stdout]    | -------------------- associated functions in this implementation
[INFO] [stdout]  8 |     pub async fn create(
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub async fn find_by_target(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CertificateRepository` is never constructed
[INFO] [stdout]  --> src/repository/certificate_repository.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CertificateRepository;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_by_id`, `create`, `update_verify_status`, and `find_pending_certificates` are never used
[INFO] [stdout]   --> src/repository/certificate_repository.rs:8:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl CertificateRepository {
[INFO] [stdout]    | -------------------------- associated functions in this implementation
[INFO] [stdout]  8 |     pub async fn find_by_id(pool: &MySqlPool, id: i64) -> AppResult<Certificate> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub async fn create(pool: &MySqlPool, cert: &Certificate) -> AppResult<i64> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub async fn update_verify_status(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub async fn find_pending_certificates(pool: &MySqlPool) -> AppResult<Vec<Certificate>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `update` and `delete` are never used
[INFO] [stdout]    --> src/repository/competition_repository.rs:92:18
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl CompetitionRepository {
[INFO] [stdout]     | -------------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub async fn update(pool: &MySqlPool, id: i64, comp: &Competition) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub async fn delete(pool: &MySqlPool, id: i64) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_by_student` and `update_status` are never used
[INFO] [stdout]   --> src/repository/participation_repository.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl ParticipationRepository {
[INFO] [stdout]    | ---------------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub async fn find_by_student(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub async fn update_status(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendRepository` is never constructed
[INFO] [stdout]  --> src/repository/recommend_repository.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RecommendRepository;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_session`, `create_recommend_items`, `create_qa_log`, and `update_qa_feedback` are never used
[INFO] [stdout]   --> src/repository/recommend_repository.rs:8:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl RecommendRepository {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout]  8 |     pub async fn create_session(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub async fn create_recommend_items(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub async fn create_qa_log(pool: &MySqlPool, log: &QaLog) -> AppResult<i64> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn update_qa_feedback(pool: &MySqlPool, id: i64, helpful: bool) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_by_credentials`, `update_status`, `find_teacher_detail`, and `upsert_teacher_detail` are never used
[INFO] [stdout]    --> src/repository/user_repository.rs:24:18
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl UserRepository {
[INFO] [stdout]     | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn find_by_credentials(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub async fn update_status(pool: &MySqlPool, id: i64, status: UserStatus) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub async fn find_teacher_detail(pool: &MySqlPool, user_id: i64) -> AppResult<TeacherDetail> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub async fn upsert_teacher_detail(pool: &MySqlPool, detail: &TeacherDetail) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditService` is never constructed
[INFO] [stdout]  --> src/services/audit_service.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AuditService;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `log` and `get_audit_trail` are never used
[INFO] [stdout]   --> src/services/audit_service.rs:9:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl AuditService {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout]  9 |     pub async fn log(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub async fn get_audit_trail(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CertificateService` is never constructed
[INFO] [stdout]  --> src/services/certificate_service.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CertificateService;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `upload_certificate` and `review_certificate` are never used
[INFO] [stdout]   --> src/services/certificate_service.rs:9:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl CertificateService {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout]  9 |     pub async fn upload_certificate(pool: &MySqlPool, cert: Certificate) -> AppResult<i64> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub async fn review_certificate(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `update_competition` and `delete_competition` are never used
[INFO] [stdout]   --> src/services/competition_service.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl CompetitionService {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub async fn update_competition(pool: &MySqlPool, id: i64, comp: Competition) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub async fn delete_competition(pool: &MySqlPool, id: i64) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendService` is never constructed
[INFO] [stdout]  --> src/services/recommend_service.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RecommendService;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/services/recommend_service.rs:10:18
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl RecommendService {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout]  10 |     pub async fn generate_recommendations(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     async fn call_ai_recommendation(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn get_recommendation_history(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn answer_question(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     async fn call_ai_qa(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub async fn feedback_recommend_item(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub async fn feedback_qa(pool: &MySqlPool, qa_id: i64, helpful: bool) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `save_teacher_detail` is never used
[INFO] [stdout]   --> src/services/user_service.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl UserService {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub async fn save_teacher_detail(pool: &MySqlPool, detail: TeacherDetail) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Unauthorized`, `Conflict`, `CertificateAlreadyExists`, and `AIResponseParseError` are never constructed
[INFO] [stdout]   --> src/error.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ErrorCode {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     Unauthorized = 1003,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 22 |     Forbidden = 1004,
[INFO] [stdout] 23 |     Conflict = 1005,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     CertificateAlreadyExists = 3006,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     AIServiceUnavailable = 4001,
[INFO] [stdout] 35 |     AIResponseParseError = 4002,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorCode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AIService` is never constructed
[INFO] [stdout]   --> src/error.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum AppError {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 76 |     AIService(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppErrorWithDetails` is never constructed
[INFO] [stdout]    --> src/error.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct AppErrorWithDetails {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReviewCertificateRequest` is never constructed
[INFO] [stdout]   --> src/handlers/certificate.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ReviewCertificateRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditLog` is never constructed
[INFO] [stdout]  --> src/models/audit.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AuditLog {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuditType` is never used
[INFO] [stdout]   --> src/models/audit.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum AuditType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuditAction` is never used
[INFO] [stdout]   --> src/models/audit.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum AuditAction {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Certificate` is never constructed
[INFO] [stdout]  --> src/models/certificate.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Certificate {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `VerifyStatus` is never used
[INFO] [stdout]   --> src/models/certificate.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum VerifyStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendSession` is never constructed
[INFO] [stdout]   --> src/models/competition.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct RecommendSession {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendItem` is never constructed
[INFO] [stdout]   --> src/models/competition.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct RecommendItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QaLog` is never constructed
[INFO] [stdout]   --> src/models/competition.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct QaLog {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TeacherDetail` is never constructed
[INFO] [stdout]   --> src/models/user.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct TeacherDetail {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditRepository` is never constructed
[INFO] [stdout]  --> src/repository/audit_repository.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct AuditRepository;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create` and `find_by_target` are never used
[INFO] [stdout]   --> src/repository/audit_repository.rs:8:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AuditRepository {
[INFO] [stdout]    | -------------------- associated functions in this implementation
[INFO] [stdout]  8 |     pub async fn create(
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub async fn find_by_target(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CertificateRepository` is never constructed
[INFO] [stdout]  --> src/repository/certificate_repository.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CertificateRepository;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_by_id`, `create`, `update_verify_status`, and `find_pending_certificates` are never used
[INFO] [stdout]   --> src/repository/certificate_repository.rs:8:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl CertificateRepository {
[INFO] [stdout]    | -------------------------- associated functions in this implementation
[INFO] [stdout]  8 |     pub async fn find_by_id(pool: &MySqlPool, id: i64) -> AppResult<Certificate> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub async fn create(pool: &MySqlPool, cert: &Certificate) -> AppResult<i64> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub async fn update_verify_status(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub async fn find_pending_certificates(pool: &MySqlPool) -> AppResult<Vec<Certificate>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `update` and `delete` are never used
[INFO] [stdout]    --> src/repository/competition_repository.rs:92:18
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl CompetitionRepository {
[INFO] [stdout]     | -------------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub async fn update(pool: &MySqlPool, id: i64, comp: &Competition) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub async fn delete(pool: &MySqlPool, id: i64) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_by_student` and `update_status` are never used
[INFO] [stdout]   --> src/repository/participation_repository.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl ParticipationRepository {
[INFO] [stdout]    | ---------------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub async fn find_by_student(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub async fn update_status(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendRepository` is never constructed
[INFO] [stdout]  --> src/repository/recommend_repository.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct RecommendRepository;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `create_session`, `create_recommend_items`, `create_qa_log`, and `update_qa_feedback` are never used
[INFO] [stdout]   --> src/repository/recommend_repository.rs:8:18
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl RecommendRepository {
[INFO] [stdout]    | ------------------------ associated functions in this implementation
[INFO] [stdout]  8 |     pub async fn create_session(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub async fn create_recommend_items(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub async fn create_qa_log(pool: &MySqlPool, log: &QaLog) -> AppResult<i64> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn update_qa_feedback(pool: &MySqlPool, id: i64, helpful: bool) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `find_by_credentials`, `update_status`, `find_teacher_detail`, and `upsert_teacher_detail` are never used
[INFO] [stdout]    --> src/repository/user_repository.rs:24:18
[INFO] [stdout]     |
[INFO] [stdout]   7 | impl UserRepository {
[INFO] [stdout]     | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn find_by_credentials(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub async fn update_status(pool: &MySqlPool, id: i64, status: UserStatus) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub async fn find_teacher_detail(pool: &MySqlPool, user_id: i64) -> AppResult<TeacherDetail> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub async fn upsert_teacher_detail(pool: &MySqlPool, detail: &TeacherDetail) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditService` is never constructed
[INFO] [stdout]  --> src/services/audit_service.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AuditService;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `log` and `get_audit_trail` are never used
[INFO] [stdout]   --> src/services/audit_service.rs:9:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl AuditService {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout]  9 |     pub async fn log(
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub async fn get_audit_trail(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CertificateService` is never constructed
[INFO] [stdout]  --> src/services/certificate_service.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CertificateService;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `upload_certificate` and `review_certificate` are never used
[INFO] [stdout]   --> src/services/certificate_service.rs:9:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl CertificateService {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout]  9 |     pub async fn upload_certificate(pool: &MySqlPool, cert: Certificate) -> AppResult<i64> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub async fn review_certificate(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `update_competition` and `delete_competition` are never used
[INFO] [stdout]   --> src/services/competition_service.rs:29:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl CompetitionService {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub async fn update_competition(pool: &MySqlPool, id: i64, comp: Competition) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub async fn delete_competition(pool: &MySqlPool, id: i64) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecommendService` is never constructed
[INFO] [stdout]  --> src/services/recommend_service.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RecommendService;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/services/recommend_service.rs:10:18
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl RecommendService {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout]  10 |     pub async fn generate_recommendations(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     async fn call_ai_recommendation(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn get_recommendation_history(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn answer_question(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     async fn call_ai_qa(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub async fn feedback_recommend_item(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub async fn feedback_qa(pool: &MySqlPool, qa_id: i64, helpful: bool) -> AppResult<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `save_teacher_detail` is never used
[INFO] [stdout]   --> src/services/user_service.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl UserService {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub async fn save_teacher_detail(pool: &MySqlPool, detail: TeacherDetail) -> AppResult<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] running `Command { std: "docker" "inspect" "2bf9c4818367ac96dd3bd4ffc0486b3509b998598482f2e88a4b499c4d2c9368", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2bf9c4818367ac96dd3bd4ffc0486b3509b998598482f2e88a4b499c4d2c9368", kill_on_drop: false }`
[INFO] [stdout] 2bf9c4818367ac96dd3bd4ffc0486b3509b998598482f2e88a4b499c4d2c9368
