import { ClientSchema } from '#database/schema' import { belongsTo, column, hasMany } from '@adonisjs/lucid/orm' import type { BelongsTo, HasMany } from '@adonisjs/lucid/types/relations' import Organization from '#models/organization' import Invoice from '#models/invoice' export default class Client extends ClientSchema { /** * Champs ajoutés par la migration `1778800000100_enrich_clients_for_invoicing` * (SIREN/TVA intra/adresse structurée). Déclarations manuelles en attendant * que `schema.ts` soit régénéré par `node ace migration:run`. * * Le champ `address` (existant, string libre) est conservé pour les clients * importés avant la feature ; le nouveau code lit en priorité ces champs * structurés et retombe sur `address` s'ils sont vides. */ @column() declare siren: string | null @column() declare tvaIntra: string | null @column() declare addressLine1: string | null @column() declare addressLine2: string | null @column() declare addressZip: string | null @column() declare addressCity: string | null /** ISO 3166-1 alpha-2 (ex. "FR"). */ @column() declare addressCountry: string | null @belongsTo(() => Organization) declare organization: BelongsTo @hasMany(() => Invoice) declare invoices: HasMany }