Skip to content

feat(commands): partial-SET domain operations without update marks #217

Description

@RAprogramm

Columns that must change only through a domain operation (e.g. passport_verified, passport_provider) cannot be #[field(update)] — that would leak them into the upsert SET list (#207) and the public Update DTO. Today the only escape is raw SQL.

Proposal — commands with an explicit column set:

#[command(VerifyPassport, requires_id, sets(passport_verified = "true", passport_verified_at = "now()"), payload(passport_provider, passport_provider_id))]

Generated: verify_passport(id, dto) on the repository and the transaction adapter, updating exactly the declared columns — fixed SQL expressions plus payload-bound values. Keeps the mutability contract: update-marked = free-form PATCH, command = named domain operation.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions