{"openapi":"3.1.0","info":{"title":"API 2T Bug","version":"2.0.0","description":"Tableaux, Scrum, suivi des bugs et support client. Authentification par cookie de session ou par token personnel (Authorization: Bearer tb_…)."},"servers":[{"url":"https://api.2tbug.com/api/v2"}],"components":{"securitySchemes":{"session":{"type":"apiKey","in":"cookie","name":"__Host-2tb_session"},"apiToken":{"type":"http","scheme":"bearer","bearerFormat":"tb_…"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}},"paths":{"/auth/signup":{"post":{"summary":"Démarrer une inscription : envoie un code à 6 chiffres par email","tags":["Authentification"],"operationId":"post_auth_signup","security":[],"responses":{"202":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"signupId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expiresInSeconds":{"type":"number"}},"required":["signupId","expiresInSeconds"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string","minLength":8,"maxLength":200},"firstName":{"type":"string","minLength":1,"maxLength":60},"lastName":{"type":"string","minLength":1,"maxLength":60},"username":{"type":"string","pattern":"^[a-z0-9_.-]{3,30}$"},"inviteToken":{"type":"string","maxLength":200}},"required":["email","password","firstName","lastName","username"]}}}}}},"/auth/signup/verify":{"post":{"summary":"Valider le code et créer le compte (ouvre la session)","tags":["Authentification"],"operationId":"post_auth_signup_verify","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"device_check"},"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expiresInSeconds":{"type":"number"}},"required":["status","challengeId","expiresInSeconds"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signupId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{"type":"string","pattern":"^\\d{6}$"}},"required":["signupId","code"]}}}}}},"/auth/login":{"post":{"summary":"Se connecter par email et mot de passe","description":"Depuis un navigateur inconnu (sans double authentification), répond `device_check` : un code part par email, à valider sur /auth/login/device.","tags":["Authentification"],"operationId":"post_auth_login","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"device_check"},"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expiresInSeconds":{"type":"number"}},"required":["status","challengeId","expiresInSeconds"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string","minLength":1,"maxLength":200}},"required":["email","password"]}}}}}},"/auth/login/mfa":{"post":{"summary":"Valider la double authentification (code ou code de secours)","tags":["Authentification"],"operationId":"post_auth_login_mfa","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"device_check"},"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expiresInSeconds":{"type":"number"}},"required":["status","challengeId","expiresInSeconds"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mfaToken":{"type":"string","minLength":10,"maxLength":200},"code":{"type":"string"},"recoveryCode":{"type":"string"}},"required":["mfaToken"]}}}}}},"/auth/login/device":{"post":{"summary":"Valider le code reçu par email après une connexion depuis un appareil inconnu","description":"Ouvre la session et retient le navigateur, sauf `trustDevice: false` (appareil partagé).","tags":["Authentification"],"operationId":"post_auth_login_device","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"device_check"},"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expiresInSeconds":{"type":"number"}},"required":["status","challengeId","expiresInSeconds"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{"type":"string","pattern":"^\\d{6}$"},"trustDevice":{"type":"boolean"}},"required":["challengeId","code"]}}}}}},"/auth/login/passkey/options":{"post":{"summary":"Préparer une connexion par clé d’accès (passkey)","tags":["Authentification"],"operationId":"post_auth_login_passkey_options","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["challengeId","options"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/login/passkey":{"post":{"summary":"Se connecter avec une clé d’accès","tags":["Authentification"],"operationId":"post_auth_login_passkey","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"device_check"},"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expiresInSeconds":{"type":"number"}},"required":["status","challengeId","expiresInSeconds"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"response":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"deviceName":{"type":"string","maxLength":60}},"required":["challengeId","response"]}}}}}},"/auth/logout":{"post":{"summary":"Se déconnecter (révoque la session)","tags":["Authentification"],"operationId":"post_auth_logout","security":[{},{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/me":{"get":{"summary":"Compte courant, organisations et offres (amorçage du front)","tags":["Authentification"],"operationId":"get_auth_me","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/password/forgot":{"post":{"summary":"Recevoir un lien pour choisir un nouveau mot de passe","description":"Répond toujours 202 : la réponse ne révèle pas si un compte existe.","tags":["Authentification"],"operationId":"post_auth_password_forgot","security":[],"responses":{"202":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]}}}}}},"/auth/password/reset":{"post":{"summary":"Choisir un nouveau mot de passe (déconnecte toutes les sessions, oublie les autres appareils)","tags":["Authentification"],"operationId":"post_auth_password_reset","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":10,"maxLength":200},"password":{"type":"string","minLength":8,"maxLength":200}},"required":["token","password"]}}}}}},"/auth/oauth/google":{"post":{"summary":"Se connecter ou s’inscrire avec Google (jeton d’identité)","tags":["Authentification"],"operationId":"post_auth_oauth_google","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"signup_required"},"signupToken":{"type":"string"},"profile":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"suggestedUsername":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["email","firstName","lastName","suggestedUsername","avatarUrl"],"additionalProperties":false}},"required":["status","signupToken","profile"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"idToken":{"type":"string","minLength":10,"maxLength":5000}},"required":["idToken"]}}}}}},"/auth/oauth/github":{"post":{"summary":"Se connecter ou s’inscrire avec GitHub (code OAuth)","tags":["Authentification"],"operationId":"post_auth_oauth_github","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"signup_required"},"signupToken":{"type":"string"},"profile":{"type":"object","properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"suggestedUsername":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["email","firstName","lastName","suggestedUsername","avatarUrl"],"additionalProperties":false}},"required":["status","signupToken","profile"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":4,"maxLength":500}},"required":["code"]}}}}}},"/auth/oauth/complete":{"post":{"summary":"Terminer une inscription Google ou GitHub (choix du nom d’utilisateur)","tags":["Authentification"],"operationId":"post_auth_oauth_complete","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}},"required":["status","me"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"mfa_required"},"mfaToken":{"type":"string"},"methods":{"type":"array","items":{"type":"string","enum":["totp","recovery","passkey"]}}},"required":["status","mfaToken","methods"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"device_check"},"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expiresInSeconds":{"type":"number"}},"required":["status","challengeId","expiresInSeconds"],"additionalProperties":false}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signupToken":{"type":"string","minLength":10,"maxLength":200},"username":{"type":"string","pattern":"^[a-z0-9_.-]{3,30}$"},"firstName":{"type":"string","minLength":1,"maxLength":60},"lastName":{"type":"string","minLength":1,"maxLength":60},"inviteToken":{"type":"string","maxLength":200}},"required":["signupToken","username"]}}}}}},"/auth/username-available":{"get":{"summary":"Vérifier qu’un nom d’utilisateur est libre","tags":["Authentification"],"operationId":"get_auth_username_available","parameters":[{"name":"username","in":"query","required":true,"schema":{"type":"string","maxLength":40}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/board":{"get":{"summary":"Tableau centralisé : mes cartes (ou toutes) de tous mes projets, rangeables par étape","description":"scope=mine : cartes assignées ou à relire ; scope=all : toutes les cartes des projets accessibles. Les cartes terminées depuis moins de doneDays jours sont incluses.","tags":["Ma journée"],"operationId":"get_me_board","parameters":[{"name":"scope","in":"query","required":false,"schema":{"default":"mine","type":"string","enum":["mine","all"]}},{"name":"doneDays","in":"query","required":false,"schema":{"default":14,"type":"integer","minimum":0,"maximum":60}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"iconUrl":{"type":["string","null"]},"coverSeed":{"type":"number"},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]}},"required":["id","name","kind"],"additionalProperties":false}}},"required":["id","key","name","workspaceId","iconUrl","coverSeed","background","methodology","columns"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"}},"required":["id","name","color"],"additionalProperties":false}},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"people":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}},"truncated":{"type":"boolean"}},"required":["projects","labels","tickets","people","truncated"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/day":{"get":{"summary":"Ma journée : retards, échéances, cartes en cours, relectures et mentions, tous projets confondus","tags":["Ma journée"],"operationId":"get_me_day","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string"},"timezone":{"type":"string"},"overdue":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"dueToday":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"dueThisWeek":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"inProgress":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"toReview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"mentions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"message":{"type":"string"},"actor":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"ticket":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"}},"required":["id","key","title"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string"}},"required":["id","message","actor","ticket","createdAt"],"additionalProperties":false}},"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"color":{"type":"string"}},"required":["id","key","name","color"],"additionalProperties":false}},"summary":{"type":"object","properties":{"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"dueToday":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"toReview":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unreadMentions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["overdue","dueToday","toReview","unreadMentions"],"additionalProperties":false}},"required":["date","timezone","overdue","dueToday","dueThisWeek","inProgress","toReview","mentions","projects","summary"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me":{"get":{"summary":"Compte courant","tags":["Mon compte"],"operationId":"get_me","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Modifier le profil","tags":["Mon compte"],"operationId":"patch_me","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":60},"lastName":{"type":"string","minLength":1,"maxLength":60},"username":{"type":"string","pattern":"^[a-z0-9_.-]{3,30}$"},"timezone":{"type":"string","maxLength":60},"locale":{"type":"string","enum":["fr","en"]}}}}}}},"delete":{"summary":"Supprimer mon compte (définitif)","tags":["Mon compte"],"operationId":"delete_me","security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","maxLength":200},"code":{"type":"string"},"confirmation":{"type":"string","const":"SUPPRIMER"}},"required":["confirmation"]}}}}}},"/me/avatar":{"post":{"summary":"Changer la photo de profil (PNG, JPEG, WebP ou GIF, 5 Mo)","tags":["Mon compte"],"operationId":"post_me_avatar","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"avatarUrl":{"type":"string"}},"required":["avatarUrl"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"Champ « file »","content":{"multipart/form-data":{"schema":{"type":"object"}}}}}},"/me/password":{"put":{"summary":"Changer (ou définir) le mot de passe : les autres sessions sont déconnectées","tags":["Mon compte"],"operationId":"put_me_password","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentPassword":{"type":"string","maxLength":200},"newPassword":{"type":"string","minLength":8,"maxLength":200}},"required":["newPassword"]}}}}}},"/me/email":{"post":{"summary":"Changer d’adresse : un code est envoyé à la nouvelle adresse","tags":["Mon compte"],"operationId":"post_me_email","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"changeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["changeId"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"newEmail":{"type":"string"},"password":{"type":"string","maxLength":200}},"required":["newEmail"]}}}}}},"/me/email/verify":{"post":{"summary":"Confirmer la nouvelle adresse avec le code reçu","tags":["Mon compte"],"operationId":"post_me_email_verify","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"changeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"code":{"type":"string","pattern":"^\\d{6}$"}},"required":["changeId","code"]}}}}}},"/me/onboarding":{"get":{"summary":"Accueil : parcours de bienvenue et « Premiers pas » (ce qui est déjà fait)","tags":["Mon compte"],"operationId":"get_me_onboarding","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"useCase":{"anyOf":[{"type":"string","enum":["students","individuals","teams","companies"]},{"type":"null"}]},"welcomed":{"type":"boolean"},"dismissed":{"type":"boolean"},"eligible":{"type":"boolean"},"completed":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["project","cards","invite","move","ai"]},"done":{"type":"boolean"},"progress":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"goal":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["key","done","progress","goal"],"additionalProperties":false}},"project":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["useCase","welcomed","dismissed","eligible","completed","steps","project"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Accueil : usage déclaré, parcours vu, liste masquée ou réaffichée","tags":["Mon compte"],"operationId":"patch_me_onboarding","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"useCase":{"anyOf":[{"type":"string","enum":["students","individuals","teams","companies"]},{"type":"null"}]},"welcomed":{"type":"boolean"},"dismissed":{"type":"boolean"},"eligible":{"type":"boolean"},"completed":{"type":"boolean"},"steps":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["project","cards","invite","move","ai"]},"done":{"type":"boolean"},"progress":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"goal":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["key","done","progress","goal"],"additionalProperties":false}},"project":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]}},"required":["useCase","welcomed","dismissed","eligible","completed","steps","project"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"useCase":{"type":"string","enum":["students","individuals","teams","companies"]},"welcomed":{"type":"boolean","const":true},"dismissed":{"type":"boolean"}}}}}}}},"/me/preferences":{"get":{"summary":"Préférences de notification","tags":["Mon compte"],"operationId":"get_me_preferences","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"notifications":{"type":"object","properties":{"email":{"type":"object","properties":{"assigned":{"type":"boolean"},"mentioned":{"type":"boolean"},"commented":{"type":"boolean"},"moved":{"type":"boolean"},"reviewRequested":{"type":"boolean"},"dueSoon":{"type":"boolean"},"clientReport":{"type":"boolean"},"sprint":{"type":"boolean"}},"required":["assigned","mentioned","commented","moved","reviewRequested","dueSoon","clientReport","sprint"],"additionalProperties":false},"inApp":{"type":"object","properties":{"assigned":{"type":"boolean"},"mentioned":{"type":"boolean"},"commented":{"type":"boolean"},"moved":{"type":"boolean"},"reviewRequested":{"type":"boolean"},"dueSoon":{"type":"boolean"},"clientReport":{"type":"boolean"},"sprint":{"type":"boolean"}},"required":["assigned","mentioned","commented","moved","reviewRequested","dueSoon","clientReport","sprint"],"additionalProperties":false},"digest":{"type":"object","properties":{"enabled":{"type":"boolean"},"hour":{"type":"integer","minimum":0,"maximum":23},"days":{"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}}},"required":["enabled","hour","days"],"additionalProperties":false},"quietHours":{"type":"object","properties":{"enabled":{"type":"boolean"},"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["enabled","start","end"],"additionalProperties":false},"mutedProjectIds":{"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["email","inApp","digest","quietHours","mutedProjectIds"],"additionalProperties":false},"favoriteProjectIds":{"maxItems":100,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"onboarding":{"type":"object","properties":{"useCase":{"anyOf":[{"type":"string","enum":["students","individuals","teams","companies"]},{"type":"null"}]},"welcomedAt":{"type":["string","null"]},"dismissedAt":{"type":["string","null"]}},"required":["useCase","welcomedAt","dismissedAt"],"additionalProperties":false}},"required":["notifications","favoriteProjectIds","onboarding"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Modifier les préférences (emails, résumé quotidien, heures calmes)","tags":["Mon compte"],"operationId":"patch_me_preferences","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"notifications":{"type":"object","properties":{"email":{"type":"object","properties":{"assigned":{"type":"boolean"},"mentioned":{"type":"boolean"},"commented":{"type":"boolean"},"moved":{"type":"boolean"},"reviewRequested":{"type":"boolean"},"dueSoon":{"type":"boolean"},"clientReport":{"type":"boolean"},"sprint":{"type":"boolean"}},"required":["assigned","mentioned","commented","moved","reviewRequested","dueSoon","clientReport","sprint"],"additionalProperties":false},"inApp":{"type":"object","properties":{"assigned":{"type":"boolean"},"mentioned":{"type":"boolean"},"commented":{"type":"boolean"},"moved":{"type":"boolean"},"reviewRequested":{"type":"boolean"},"dueSoon":{"type":"boolean"},"clientReport":{"type":"boolean"},"sprint":{"type":"boolean"}},"required":["assigned","mentioned","commented","moved","reviewRequested","dueSoon","clientReport","sprint"],"additionalProperties":false},"digest":{"type":"object","properties":{"enabled":{"type":"boolean"},"hour":{"type":"integer","minimum":0,"maximum":23},"days":{"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}}},"required":["enabled","hour","days"],"additionalProperties":false},"quietHours":{"type":"object","properties":{"enabled":{"type":"boolean"},"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["enabled","start","end"],"additionalProperties":false},"mutedProjectIds":{"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["email","inApp","digest","quietHours","mutedProjectIds"],"additionalProperties":false},"favoriteProjectIds":{"maxItems":100,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"onboarding":{"type":"object","properties":{"useCase":{"anyOf":[{"type":"string","enum":["students","individuals","teams","companies"]},{"type":"null"}]},"welcomedAt":{"type":["string","null"]},"dismissedAt":{"type":["string","null"]}},"required":["useCase","welcomedAt","dismissedAt"],"additionalProperties":false}},"required":["notifications","favoriteProjectIds","onboarding"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"notifications":{"type":"object","properties":{"email":{"type":"object","properties":{"assigned":{"type":"boolean"},"mentioned":{"type":"boolean"},"commented":{"type":"boolean"},"moved":{"type":"boolean"},"reviewRequested":{"type":"boolean"},"dueSoon":{"type":"boolean"},"clientReport":{"type":"boolean"},"sprint":{"type":"boolean"}}},"inApp":{"type":"object","properties":{"assigned":{"type":"boolean"},"mentioned":{"type":"boolean"},"commented":{"type":"boolean"},"moved":{"type":"boolean"},"reviewRequested":{"type":"boolean"},"dueSoon":{"type":"boolean"},"clientReport":{"type":"boolean"},"sprint":{"type":"boolean"}}},"digest":{"type":"object","properties":{"enabled":{"type":"boolean"},"hour":{"type":"integer","minimum":0,"maximum":23},"days":{"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}}}},"quietHours":{"type":"object","properties":{"enabled":{"type":"boolean"},"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}}},"mutedProjectIds":{"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}}}}}}},"/me/sessions":{"get":{"summary":"Appareils connectés","tags":["Mon compte"],"operationId":"get_me_sessions","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ip":{"type":["string","null"]},"userAgent":{"type":["string","null"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":"string"},"current":{"type":"boolean"}},"required":["id","ip","userAgent","createdAt","lastUsedAt","current"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Déconnecter tous les autres appareils (et les oublier)","tags":["Mon compte"],"operationId":"delete_me_sessions","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"number"}},"required":["revoked"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/sessions/{id}":{"delete":{"summary":"Déconnecter un appareil","description":"Un autre appareil est aussi oublié : sa prochaine connexion par mot de passe demandera un code reçu par email.","tags":["Mon compte"],"operationId":"delete_me_sessions_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/mfa/totp/setup":{"post":{"summary":"Préparer l’application d’authentification (QR code)","tags":["Mon compte"],"operationId":"post_me_mfa_totp_setup","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"secret":{"type":"string"},"otpauthUrl":{"type":"string"}},"required":["secret","otpauthUrl"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/mfa/totp/enable":{"post":{"summary":"Activer la double authentification (renvoie 10 codes de secours)","tags":["Mon compte"],"operationId":"post_me_mfa_totp_enable","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"recoveryCodes":{"type":"array","items":{"type":"string"}}},"required":["recoveryCodes"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^\\d{6}$"}},"required":["code"]}}}}}},"/me/mfa/totp":{"delete":{"summary":"Désactiver la double authentification","tags":["Mon compte"],"operationId":"delete_me_mfa_totp","security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"password":{"type":"string"}}}}}}}},"/me/mfa/recovery-codes":{"post":{"summary":"Générer de nouveaux codes de secours (les anciens cessent de fonctionner)","tags":["Mon compte"],"operationId":"post_me_mfa_recovery_codes","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"recoveryCodes":{"type":"array","items":{"type":"string"}}},"required":["recoveryCodes"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^\\d{6}$"}},"required":["code"]}}}}}},"/me/passkeys":{"get":{"summary":"Clés d’accès enregistrées","tags":["Mon compte"],"operationId":"get_me_passkeys","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deviceName":{"type":["string","null"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["string","null"]}},"required":["id","deviceName","createdAt","lastUsedAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Enregistrer une clé d’accès","tags":["Mon compte"],"operationId":"post_me_passkeys","security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deviceName":{"type":["string","null"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["string","null"]}},"required":["id","deviceName","createdAt","lastUsedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"response":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"deviceName":{"type":"string","maxLength":60}},"required":["challengeId","response"]}}}}}},"/me/passkeys/options":{"post":{"summary":"Préparer l’ajout d’une clé d’accès","tags":["Mon compte"],"operationId":"post_me_passkeys_options","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"challengeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["challengeId","options"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/passkeys/{id}":{"delete":{"summary":"Retirer une clé d’accès","tags":["Mon compte"],"operationId":"delete_me_passkeys_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/tokens":{"get":{"summary":"Tokens personnels","tags":["Mon compte"],"operationId":"get_me_tokens","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"prefix":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"lastUsedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]}},"required":["id","name","prefix","scopes","createdAt","lastUsedAt","expiresAt","revokedAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Créer un token personnel (affiché une seule fois)","description":"Portée « mcp » : agents IA via /api/mcp, limités aux projets ouverts au MCP. Portée « api » : toute l’API, avec vos droits.","tags":["Mon compte"],"operationId":"post_me_tokens","security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"prefix":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"lastUsedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"token":{"type":"string"}},"required":["id","name","prefix","scopes","createdAt","lastUsedAt","expiresAt","revokedAt","token"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"scopes":{"default":["mcp"],"minItems":1,"type":"array","items":{"type":"string","enum":["api","mcp"]}},"expiresInDays":{"type":"integer","minimum":1,"maximum":730}},"required":["name"]}}}}}},"/me/tokens/{id}":{"delete":{"summary":"Révoquer un token personnel","tags":["Mon compte"],"operationId":"delete_me_tokens_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/export":{"get":{"summary":"Exporter toutes mes données (JSON)","tags":["Mon compte"],"operationId":"get_me_export","security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces":{"get":{"summary":"Mon espace personnel et mes organisations","tags":["Espaces"],"operationId":"get_workspaces","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trialEndsAt":{"type":["string","null"]},"requireMfa":{"type":"boolean"},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"}},"required":["id","name","slug","kind","logoUrl","role","plan","seats","trialEndsAt","requireMfa","memberCount","projectCount","createdAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Créer une organisation","tags":["Espaces"],"operationId":"post_workspaces","security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trialEndsAt":{"type":["string","null"]},"requireMfa":{"type":"boolean"},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"}},"required":["id","name","slug","kind","logoUrl","role","plan","seats","trialEndsAt","requireMfa","memberCount","projectCount","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"]}}}}}},"/workspaces/{id}":{"get":{"summary":"Détail d’une organisation (ou de l’espace personnel)","tags":["Espaces"],"operationId":"get_workspaces_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trialEndsAt":{"type":["string","null"]},"requireMfa":{"type":"boolean"},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"}},"required":["id","name","slug","kind","logoUrl","role","plan","seats","trialEndsAt","requireMfa","memberCount","projectCount","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Renommer, exiger la double authentification","tags":["Espaces"],"operationId":"patch_workspaces_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trialEndsAt":{"type":["string","null"]},"requireMfa":{"type":"boolean"},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"}},"required":["id","name","slug","kind","logoUrl","role","plan","seats","trialEndsAt","requireMfa","memberCount","projectCount","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"requireMfa":{"type":"boolean"}}}}}}},"delete":{"summary":"Supprimer une organisation (propriétaire)","description":"Les projets passent en corbeille 30 jours avant suppression définitive.","tags":["Espaces"],"operationId":"delete_workspaces_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirmName":{"type":"string"}},"required":["confirmName"]}}}}}},"/workspaces/{id}/logo":{"post":{"summary":"Changer le logo de l’organisation","tags":["Espaces"],"operationId":"post_workspaces_id_logo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string"}},"required":["logoUrl"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"Champ « file » (PNG, JPEG, WebP, GIF, 5 Mo)","content":{"multipart/form-data":{"schema":{"type":"object"}}}}},"delete":{"summary":"Retirer le logo de l’organisation (son initiale revient)","tags":["Espaces"],"operationId":"delete_workspaces_id_logo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/members":{"get":{"summary":"Membres de l’organisation","tags":["Espaces"],"operationId":"get_workspaces_id_members","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"email":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl","email"],"additionalProperties":false},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"joinedAt":{"type":"string"}},"required":["user","role","joinedAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/members/{userId}":{"patch":{"summary":"Changer le rôle d’un membre","tags":["Espaces"],"operationId":"patch_workspaces_id_members_userId","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER"]}},"required":["role"]}}}}},"delete":{"summary":"Retirer un membre (ou quitter l’organisation)","tags":["Espaces"],"operationId":"delete_workspaces_id_members_userId","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/transfer":{"post":{"summary":"Transférer la propriété à un membre","tags":["Espaces"],"operationId":"post_workspaces_id_transfer","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["userId"]}}}}}},"/workspaces/{id}/invitations":{"get":{"summary":"Invitations en attente","tags":["Espaces"],"operationId":"get_workspaces_id_invitations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"role":{"anyOf":[{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},{"type":"null"}]},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"projectName":{"type":["string","null"]},"projectRole":{"anyOf":[{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","email","role","projectId","projectName","projectRole","invitedBy","expiresAt","createdAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Inviter des personnes dans l’organisation (email avec lien)","tags":["Espaces"],"operationId":"post_workspaces_id_invitations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"role":{"anyOf":[{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},{"type":"null"}]},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"projectName":{"type":["string","null"]},"projectRole":{"anyOf":[{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","email","role","projectId","projectName","projectRole","invitedBy","expiresAt","createdAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string"}},"role":{"default":"MEMBER","type":"string","enum":["ADMIN","MEMBER"]}},"required":["emails"]}}}}}},"/workspaces/{id}/invitations/{invitationId}":{"delete":{"summary":"Annuler une invitation","tags":["Espaces"],"operationId":"delete_workspaces_id_invitations_invitationId","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"invitationId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/invitations/{token}":{"get":{"summary":"Aperçu d’une invitation (page d’accueil du lien)","tags":["Espaces"],"operationId":"get_invitations_token","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":10,"maxLength":200}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"workspaceName":{"type":"string"},"projectName":{"type":["string","null"]},"inviterName":{"type":["string","null"]},"expiresAt":{"type":"string"},"accountExists":{"type":"boolean"}},"required":["email","workspaceName","projectName","inviterName","expiresAt","accountExists"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/invitations/{token}/accept":{"post":{"summary":"Accepter une invitation (avec le compte de l’adresse invitée)","tags":["Espaces"],"operationId":"post_invitations_token_accept","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":10,"maxLength":200}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["workspaceId","projectId"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/plans":{"get":{"summary":"Catalogue des offres (page tarifs)","tags":["Offres et facturation"],"operationId":"get_plans","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"label":{"type":"string"},"priceCents":{"type":"object","properties":{"month":{"type":"number"},"year":{"type":"number"}},"required":["month","year"],"additionalProperties":false},"perSeat":{"type":"boolean"},"limits":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":["number","boolean","null"]}},"features":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["plan","label","priceCents","perSeat","limits","features"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/billing":{"get":{"summary":"Offre, abonnement et consommation de l’organisation ou du compte","tags":["Offres et facturation"],"operationId":"get_workspaces_id_billing","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"status":{"type":["string","null"]},"source":{"type":["string","null"]},"interval":{"anyOf":[{"type":"string","enum":["MONTH","YEAR"]},{"type":"null"}]},"seats":{"type":"number"},"currentPeriodEnd":{"type":["string","null"]},"cancelAtPeriodEnd":{"type":"boolean"},"trialEndsAt":{"type":["string","null"]},"canStartTrial":{"type":"boolean"},"paymentEnabled":{"type":"boolean"},"usage":{"type":"object","properties":{"projects":{"type":"object","properties":{"used":{"type":"number"},"limit":{"type":["number","null"]}},"required":["used","limit"],"additionalProperties":false},"members":{"type":"object","properties":{"used":{"type":"number"},"limit":{"type":["number","null"]}},"required":["used","limit"],"additionalProperties":false},"guests":{"type":"object","properties":{"used":{"type":"number"},"limit":{"type":["number","null"]}},"required":["used","limit"],"additionalProperties":false},"aiCredits":{"type":"object","properties":{"used":{"type":"number"},"limit":{"type":["number","null"]}},"required":["used","limit"],"additionalProperties":false},"automationRuns":{"type":"object","properties":{"used":{"type":"number"},"limit":{"type":["number","null"]}},"required":["used","limit"],"additionalProperties":false}},"required":["projects","members","guests","aiCredits","automationRuns"],"additionalProperties":false}},"required":["plan","status","source","interval","seats","currentPeriodEnd","cancelAtPeriodEnd","trialEndsAt","canStartTrial","paymentEnabled","usage"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/billing/checkout":{"post":{"summary":"Ouvrir le paiement Stripe pour une offre","tags":["Offres et facturation"],"operationId":"post_workspaces_id_billing_checkout","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string","enum":["PLUS","TEAM","BUSINESS"]},"interval":{"default":"YEAR","type":"string","enum":["MONTH","YEAR"]},"association":{"default":false,"type":"boolean"},"trial":{"default":false,"type":"boolean"}},"required":["plan"]}}}}}},"/workspaces/{id}/billing/portal":{"post":{"summary":"Ouvrir le portail client (factures, moyen de paiement, changement d’offre)","tags":["Offres et facturation"],"operationId":"post_workspaces_id_billing_portal","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/templates":{"get":{"summary":"Modèles de projet","tags":["Projets"],"operationId":"get_templates","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"audience":{"type":"array","items":{"type":"string","enum":["students","individuals","teams","companies"]}},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"columns":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]}},"required":["name","kind"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"color":{"type":"string"}},"required":["name","color"],"additionalProperties":false}},"cards":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"column":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"labels":{"type":"array","items":{"type":"string"}}},"required":["title","column","labels"],"additionalProperties":false}}},"required":["key","name","description","audience","methodology","columns","labels","cards","preview"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects":{"get":{"summary":"Projets accessibles, avec compteurs, équipe en aperçu, sprint en cours et favoris","tags":["Projets"],"operationId":"get_projects","parameters":[{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"archived","in":"query","required":false,"schema":{"default":"false","type":"string","enum":["true","false"]}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Créer un projet (vide ou depuis un modèle)","tags":["Projets"],"operationId":"post_projects","security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"members":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"source":{"type":"string","enum":["direct","workspace"]},"guest":{"type":"boolean"}},"required":["user","role","source","guest"],"additionalProperties":false}},"publicFormSettings":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"intro":{"type":"string","maxLength":2000},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"askEmail":{"default":"optional","type":"string","enum":["required","optional","hidden"]},"fields":{"default":[],"maxItems":15,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9_]{1,30}$"},"label":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["text","textarea","select","url"]},"required":{"default":false,"type":"boolean"},"options":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":80}}},"required":["key","label","type","required"],"additionalProperties":false}},"defaultColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"defaultLabelIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"notifyResolved":{"default":true,"type":"boolean"}},"required":["askEmail","fields","defaultLabelIds","notifyResolved"],"additionalProperties":false},"publicFormUrl":{"type":"string"},"widget":{"type":"object","properties":{"enabled":{"type":"boolean"},"origins":{"type":"array","items":{"type":"string"}}},"required":["enabled","origins"],"additionalProperties":false},"inbox":{"type":"object","properties":{"enabled":{"type":"boolean"},"address":{"type":["string","null"]}},"required":["enabled","address"],"additionalProperties":false}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt","columns","labels","members","publicFormSettings","publicFormUrl","widget","inbox"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":80},"key":{"type":"string","pattern":"^(?=[A-Z0-9]*[A-Z])[A-Z0-9]{2,10}$"},"description":{"type":"string","maxLength":2000},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"methodology":{"default":"KANBAN","type":"string","enum":["KANBAN","SCRUM"]},"visibility":{"default":"PRIVATE","type":"string","enum":["PRIVATE","WORKSPACE"]},"templateKey":{"type":"string","maxLength":40}},"required":["workspaceId","name"]}}}}}},"/projects/{id}/favorite":{"post":{"summary":"Épingler un projet en favori (en tête de Mes projets et de la barre)","tags":["Projets"],"operationId":"post_projects_id_favorite","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Retirer un projet des favoris","tags":["Projets"],"operationId":"delete_projects_id_favorite","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}":{"get":{"summary":"Détail d’un projet (colonnes, étiquettes, équipe)","tags":["Projets"],"operationId":"get_projects_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"members":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"source":{"type":"string","enum":["direct","workspace"]},"guest":{"type":"boolean"}},"required":["user","role","source","guest"],"additionalProperties":false}},"publicFormSettings":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"intro":{"type":"string","maxLength":2000},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"askEmail":{"default":"optional","type":"string","enum":["required","optional","hidden"]},"fields":{"default":[],"maxItems":15,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9_]{1,30}$"},"label":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["text","textarea","select","url"]},"required":{"default":false,"type":"boolean"},"options":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":80}}},"required":["key","label","type","required"],"additionalProperties":false}},"defaultColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"defaultLabelIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"notifyResolved":{"default":true,"type":"boolean"}},"required":["askEmail","fields","defaultLabelIds","notifyResolved"],"additionalProperties":false},"publicFormUrl":{"type":"string"},"widget":{"type":"object","properties":{"enabled":{"type":"boolean"},"origins":{"type":"array","items":{"type":"string"}}},"required":["enabled","origins"],"additionalProperties":false},"inbox":{"type":"object","properties":{"enabled":{"type":"boolean"},"address":{"type":["string","null"]}},"required":["enabled","address"],"additionalProperties":false}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt","columns","labels","members","publicFormSettings","publicFormUrl","widget","inbox"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Modifier les réglages du projet","tags":["Projets"],"operationId":"patch_projects_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"members":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"source":{"type":"string","enum":["direct","workspace"]},"guest":{"type":"boolean"}},"required":["user","role","source","guest"],"additionalProperties":false}},"publicFormSettings":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"intro":{"type":"string","maxLength":2000},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"askEmail":{"default":"optional","type":"string","enum":["required","optional","hidden"]},"fields":{"default":[],"maxItems":15,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9_]{1,30}$"},"label":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["text","textarea","select","url"]},"required":{"default":false,"type":"boolean"},"options":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":80}}},"required":["key","label","type","required"],"additionalProperties":false}},"defaultColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"defaultLabelIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"notifyResolved":{"default":true,"type":"boolean"}},"required":["askEmail","fields","defaultLabelIds","notifyResolved"],"additionalProperties":false},"publicFormUrl":{"type":"string"},"widget":{"type":"object","properties":{"enabled":{"type":"boolean"},"origins":{"type":"array","items":{"type":"string"}}},"required":["enabled","origins"],"additionalProperties":false},"inbox":{"type":"object","properties":{"enabled":{"type":"boolean"},"address":{"type":["string","null"]}},"required":["enabled","address"],"additionalProperties":false}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt","columns","labels","members","publicFormSettings","publicFormUrl","widget","inbox"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"key":{"type":"string","pattern":"^(?=[A-Z0-9]*[A-Z])[A-Z0-9]{2,10}$"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"coverSeed":{"type":"integer","minimum":0,"maximum":2147483647},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string","enum":["manual","urgency","dueDate","smart","updated"]},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"publicFormSettings":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"intro":{"type":"string","maxLength":2000},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"askEmail":{"default":"optional","type":"string","enum":["required","optional","hidden"]},"fields":{"default":[],"maxItems":15,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9_]{1,30}$"},"label":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["text","textarea","select","url"]},"required":{"default":false,"type":"boolean"},"options":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":80}}},"required":["key","label","type"]}},"defaultColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"defaultLabelIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"notifyResolved":{"default":true,"type":"boolean"}}},"inboxEnabled":{"type":"boolean"},"widgetOrigins":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":200,"format":"uri"}}}}}}}},"delete":{"summary":"Mettre le projet à la corbeille (restaurable 30 jours)","tags":["Projets"],"operationId":"delete_projects_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/board":{"get":{"summary":"Tableau complet en une requête : projet, cartes actives, terminées du mois et du mois précédent, sprints","tags":["Projets"],"operationId":"get_projects_id_board","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"members":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"source":{"type":"string","enum":["direct","workspace"]},"guest":{"type":"boolean"}},"required":["user","role","source","guest"],"additionalProperties":false}},"publicFormSettings":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"intro":{"type":"string","maxLength":2000},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"askEmail":{"default":"optional","type":"string","enum":["required","optional","hidden"]},"fields":{"default":[],"maxItems":15,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9_]{1,30}$"},"label":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["text","textarea","select","url"]},"required":{"default":false,"type":"boolean"},"options":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":80}}},"required":["key","label","type","required"],"additionalProperties":false}},"defaultColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"defaultLabelIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"notifyResolved":{"default":true,"type":"boolean"}},"required":["askEmail","fields","defaultLabelIds","notifyResolved"],"additionalProperties":false},"publicFormUrl":{"type":"string"},"widget":{"type":"object","properties":{"enabled":{"type":"boolean"},"origins":{"type":"array","items":{"type":"string"}}},"required":["enabled","origins"],"additionalProperties":false},"inbox":{"type":"object","properties":{"enabled":{"type":"boolean"},"address":{"type":["string","null"]}},"required":["enabled","address"],"additionalProperties":false}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt","columns","labels","members","publicFormSettings","publicFormUrl","widget","inbox"],"additionalProperties":false},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"sprints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false}},"archive":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"months":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["month","count"],"additionalProperties":false}}},"required":["count","months"],"additionalProperties":false}},"required":["project","tickets","sprints","archive"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/icon":{"post":{"summary":"Changer l’icône du projet","tags":["Projets"],"operationId":"post_projects_id_icon","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"Champ « file »","content":{"multipart/form-data":{"schema":{"type":"object"}}}}},"delete":{"summary":"Retirer le logo du projet (sa vignette en papier de nid revient)","tags":["Projets"],"operationId":"delete_projects_id_icon","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/banner":{"post":{"summary":"Changer la bannière du formulaire public","tags":["Projets"],"operationId":"post_projects_id_banner","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"Champ « file »","content":{"multipart/form-data":{"schema":{"type":"object"}}}}}},"/projects/{id}/archive":{"post":{"summary":"Archiver le projet (lecture seule, ne compte plus dans les limites)","tags":["Projets"],"operationId":"post_projects_id_archive","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/unarchive":{"post":{"summary":"Sortir le projet des archives","tags":["Projets"],"operationId":"post_projects_id_unarchive","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/restore":{"post":{"summary":"Restaurer un projet de la corbeille","tags":["Projets"],"operationId":"post_projects_id_restore","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"visibility":{"type":"string","enum":["PRIVATE","WORKSPACE"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"permissions":{"type":"array","items":{"type":"string"}},"mcpReadable":{"type":"boolean"},"mcpWritable":{"type":"boolean"},"publicFormEnabled":{"type":"boolean"},"shareEnabled":{"type":"boolean"},"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"counts":{"type":"object","properties":{"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doneThisMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mine":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["open","overdue","critical","doneThisMonth"],"additionalProperties":false},"lastActivityAt":{"type":["string","null"]},"favorite":{"type":"boolean"},"team":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["total","preview"],"additionalProperties":false},"activeSprint":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"unit":{"type":"string","enum":["points","cards"]},"total":{"type":"number"},"done":{"type":"number"}},"required":["id","number","name","goal","startDate","endDate","unit","total","done"],"additionalProperties":false},{"type":"null"}]},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"members":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"source":{"type":"string","enum":["direct","workspace"]},"guest":{"type":"boolean"}},"required":["user","role","source","guest"],"additionalProperties":false}},"publicFormSettings":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"intro":{"type":"string","maxLength":2000},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"askEmail":{"default":"optional","type":"string","enum":["required","optional","hidden"]},"fields":{"default":[],"maxItems":15,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9_]{1,30}$"},"label":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["text","textarea","select","url"]},"required":{"default":false,"type":"boolean"},"options":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":80}}},"required":["key","label","type","required"],"additionalProperties":false}},"defaultColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"defaultLabelIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"notifyResolved":{"default":true,"type":"boolean"}},"required":["askEmail","fields","defaultLabelIds","notifyResolved"],"additionalProperties":false},"publicFormUrl":{"type":"string"},"widget":{"type":"object","properties":{"enabled":{"type":"boolean"},"origins":{"type":"array","items":{"type":"string"}}},"required":["enabled","origins"],"additionalProperties":false},"inbox":{"type":"object","properties":{"enabled":{"type":"boolean"},"address":{"type":["string","null"]}},"required":["enabled","address"],"additionalProperties":false}},"required":["id","workspaceId","key","name","description","color","coverSeed","iconUrl","bannerUrl","background","visibility","methodology","estimationScale","defaultSort","role","permissions","mcpReadable","mcpWritable","publicFormEnabled","shareEnabled","archivedAt","createdAt","updatedAt","columns","labels","members","publicFormSettings","publicFormUrl","widget","inbox"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/members":{"get":{"summary":"Équipe du projet (membres directs et de l’organisation)","tags":["Projets"],"operationId":"get_projects_id_members","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]},"source":{"type":"string","enum":["direct","workspace"]},"guest":{"type":"boolean"}},"required":["user","role","source","guest"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Ajouter une personne au projet (membre de l’organisation) ou l’inviter (invité externe)","tags":["Projets"],"operationId":"post_projects_id_members","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["added","invited"]}},"required":["status"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"role":{"default":"MEMBER","type":"string","enum":["ADMIN","MEMBER","OBSERVER"]}},"required":["email"]}}}}}},"/projects/{id}/members/{userId}":{"patch":{"summary":"Changer le rôle d’une personne sur le projet","tags":["Projets"],"operationId":"patch_projects_id_members_userId","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["ADMIN","MEMBER","OBSERVER"]}},"required":["role"]}}}}},"delete":{"summary":"Retirer une personne du projet (ou quitter le projet)","tags":["Projets"],"operationId":"delete_projects_id_members_userId","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/columns":{"post":{"summary":"Ajouter une colonne","tags":["Projets"],"operationId":"post_projects_id_columns","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"wipLimit":{"anyOf":[{"type":"integer","minimum":1,"maximum":999},{"type":"null"}]},"afterId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["name","kind"]}}}}}},"/columns/{id}":{"patch":{"summary":"Renommer une colonne, changer son type, sa couleur ou sa limite d’encours","tags":["Projets"],"operationId":"patch_columns_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"wipLimit":{"anyOf":[{"type":"integer","minimum":1,"maximum":999},{"type":"null"}]}}}}}}},"delete":{"summary":"Supprimer une colonne ; ses cartes rejoignent la colonne indiquée","tags":["Projets"],"operationId":"delete_columns_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"moveTo","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/columns/{id}/move":{"post":{"summary":"Déplacer une colonne (entre deux autres)","tags":["Projets"],"operationId":"post_columns_id_move","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"beforeId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"afterId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}}}}}}}},"/projects/{id}/labels":{"get":{"summary":"Étiquettes du projet et communes à l’organisation","tags":["Projets"],"operationId":"get_projects_id_labels","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Créer une étiquette (du projet, ou commune à l’organisation pour un administrateur)","tags":["Projets"],"operationId":"post_projects_id_labels","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"scope":{"default":"project","type":"string","enum":["project","workspace"]}},"required":["name","color"]}}}}}},"/labels/{id}":{"patch":{"summary":"Modifier une étiquette","tags":["Projets"],"operationId":"patch_labels_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}}}}}},"delete":{"summary":"Supprimer une étiquette (retirée des cartes)","tags":["Projets"],"operationId":"delete_labels_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/share":{"get":{"summary":"État du lien de partage public","tags":["Projets"],"operationId":"get_projects_id_share","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"url":{"type":["string","null"]},"sharedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"expired":{"type":"boolean"},"settings":{"type":"object","properties":{"level":{"type":"string","enum":["ESSENTIAL","TEAM","CUSTOM"]},"options":{"type":"object","properties":{"details":{"type":"boolean"},"comments":{"type":"boolean"},"attachments":{"type":"boolean"},"activity":{"type":"boolean"},"planning":{"type":"boolean"},"archive":{"type":"boolean"},"people":{"type":"string","enum":["HIDDEN","FIRST_NAME","FULL"]}},"required":["details","comments","attachments","activity","planning","archive","people"],"additionalProperties":false},"hiddenLabelIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["level","options","hiddenLabelIds"],"additionalProperties":false}},"required":["enabled","url","sharedAt","expiresAt","expired","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Activer le lien de partage (garde le lien existant)","tags":["Projets"],"operationId":"post_projects_id_share","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"url":{"type":["string","null"]},"sharedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"expired":{"type":"boolean"},"settings":{"type":"object","properties":{"level":{"type":"string","enum":["ESSENTIAL","TEAM","CUSTOM"]},"options":{"type":"object","properties":{"details":{"type":"boolean"},"comments":{"type":"boolean"},"attachments":{"type":"boolean"},"activity":{"type":"boolean"},"planning":{"type":"boolean"},"archive":{"type":"boolean"},"people":{"type":"string","enum":["HIDDEN","FIRST_NAME","FULL"]}},"required":["details","comments","attachments","activity","planning","archive","people"],"additionalProperties":false},"hiddenLabelIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["level","options","hiddenLabelIds"],"additionalProperties":false}},"required":["enabled","url","sharedAt","expiresAt","expired","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Régler ce que voit le lien de partage (niveau, réglages sur mesure, étiquettes gardées pour l’équipe, date de fin)","description":"Les réglages se gardent même lien coupé : le prochain lien les reprend.","tags":["Projets"],"operationId":"patch_projects_id_share","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"url":{"type":["string","null"]},"sharedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"expired":{"type":"boolean"},"settings":{"type":"object","properties":{"level":{"type":"string","enum":["ESSENTIAL","TEAM","CUSTOM"]},"options":{"type":"object","properties":{"details":{"type":"boolean"},"comments":{"type":"boolean"},"attachments":{"type":"boolean"},"activity":{"type":"boolean"},"planning":{"type":"boolean"},"archive":{"type":"boolean"},"people":{"type":"string","enum":["HIDDEN","FIRST_NAME","FULL"]}},"required":["details","comments","attachments","activity","planning","archive","people"],"additionalProperties":false},"hiddenLabelIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["level","options","hiddenLabelIds"],"additionalProperties":false}},"required":["enabled","url","sharedAt","expiresAt","expired","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"settings":{"type":"object","properties":{"level":{"type":"string","enum":["ESSENTIAL","TEAM","CUSTOM"]},"options":{"type":"object","properties":{"details":{"type":"boolean"},"comments":{"type":"boolean"},"attachments":{"type":"boolean"},"activity":{"type":"boolean"},"planning":{"type":"boolean"},"archive":{"type":"boolean"},"people":{"type":"string","enum":["HIDDEN","FIRST_NAME","FULL"]}},"required":["details","comments","attachments","activity","planning","archive","people"]},"hiddenLabelIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}}}}}}},"delete":{"summary":"Couper le lien de partage (ses réglages restent pour le prochain)","tags":["Projets"],"operationId":"delete_projects_id_share","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/share/regenerate":{"post":{"summary":"Remplacer le lien : l’ancien cesse de fonctionner","tags":["Projets"],"operationId":"post_projects_id_share_regenerate","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"url":{"type":["string","null"]},"sharedAt":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"expired":{"type":"boolean"},"settings":{"type":"object","properties":{"level":{"type":"string","enum":["ESSENTIAL","TEAM","CUSTOM"]},"options":{"type":"object","properties":{"details":{"type":"boolean"},"comments":{"type":"boolean"},"attachments":{"type":"boolean"},"activity":{"type":"boolean"},"planning":{"type":"boolean"},"archive":{"type":"boolean"},"people":{"type":"string","enum":["HIDDEN","FIRST_NAME","FULL"]}},"required":["details","comments","attachments","activity","planning","archive","people"],"additionalProperties":false},"hiddenLabelIds":{"maxItems":50,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["level","options","hiddenLabelIds"],"additionalProperties":false}},"required":["enabled","url","sharedAt","expiresAt","expired","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/public-form/regenerate":{"post":{"summary":"Changer l’adresse du formulaire public : l’ancienne et son QR code cessent de fonctionner","tags":["Projets"],"operationId":"post_projects_id_public_form_regenerate","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/inbox/regenerate":{"post":{"summary":"Changer l’adresse de signalement par email : l’ancienne ne reçoit plus rien","tags":["Projets"],"operationId":"post_projects_id_inbox_regenerate","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":["string","null"]}},"required":["address"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/widget-key":{"post":{"summary":"Créer ou renouveler la clé du widget de signalement","tags":["Projets"],"operationId":"post_projects_id_widget_key","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"widgetKey":{"type":"string"},"snippet":{"type":"string"}},"required":["widgetKey","snippet"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Couper le widget : la clé ne fonctionne plus, les sites qui l’intègrent ne peuvent plus envoyer","tags":["Projets"],"operationId":"delete_projects_id_widget_key","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/widget":{"get":{"summary":"État du widget de signalement : offre, clé, code à intégrer, sites autorisés","tags":["Projets"],"operationId":"get_projects_id_widget","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"type":["string","null"]},"key":{"type":["string","null"]},"snippet":{"type":["string","null"]},"origins":{"type":"array","items":{"type":"string"}}},"required":["available","requiredPlan","key","snippet","origins"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/backgrounds/photos":{"get":{"summary":"Galerie des fonds de tableau : recherche Unsplash, ou sélection intégrée sans clé","description":"Sans query : la sélection « Fonds d’écran » d’Unsplash. Chaque photo porte son crédit (photographe, page Unsplash).","tags":["Projets"],"operationId":"get_backgrounds_photos","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":50}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["unsplash","selection"]},"photos":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":"string"},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"thumbUrl":{"type":"string"},"previewUrl":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["id","description","color","width","height","thumbUrl","previewUrl","author","pageUrl"],"additionalProperties":false}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["source","photos","page","hasMore"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/background":{"put":{"summary":"Choisir le fond du tableau : papier de nid (avec sa graine) ou photo Unsplash","tags":["Projets"],"operationId":"put_projects_id_background","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]}},"required":["coverSeed","background"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"nest"},"coverSeed":{"type":"integer","minimum":0,"maximum":2147483647}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string","pattern":"^[A-Za-z0-9_-]{2,64}$"}},"required":["kind","photoId"]}]}}}}}},"/tickets":{"get":{"summary":"Lister et filtrer les cartes (vues liste, tableur, calendrier, timeline, Ma journée)","description":"Sans projectId : toutes les cartes des projets accessibles. assigneeId=me pour mes cartes.","tags":["Cartes"],"operationId":"get_tickets","parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"projectIds","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"columnId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"sprintId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"none"}]}},{"name":"assigneeId","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"me"},{"type":"string","const":"none"}]}},{"name":"labelId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},{"name":"urgencyMin","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"status","in":"query","required":false,"schema":{"default":"open","type":"string","enum":["open","done","all"]}},{"name":"dueFrom","in":"query","required":false,"schema":{}},{"name":"dueTo","in":"query","required":false,"schema":{}},{"name":"completedFrom","in":"query","required":false,"schema":{}},{"name":"completedTo","in":"query","required":false,"schema":{}},{"name":"parentId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"sort","in":"query","required":false,"schema":{"default":"rank","type":"string","enum":["rank","updated","created","due","urgency"]}},{"name":"order","in":"query","required":false,"schema":{"default":"asc","type":"string","enum":["asc","desc"]}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"limit","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":200}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Créer une carte","tags":["Cartes"],"operationId":"post_tickets","security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":100000},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"position":{"default":"bottom","type":"string","enum":["top","bottom"]},"afterId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"urgency":{"default":2,"type":"integer","minimum":1,"maximum":5},"estimate":{"anyOf":[{"type":"number","minimum":0,"maximum":1000},{"type":"null"}]},"startDate":{"anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"dueDate":{"anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"default":[],"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}}},"required":["projectId","title"]}}}}}},"/tickets/bulk":{"post":{"summary":"Créer plusieurs cartes d’un coup, éventuellement sous une épopée (découpage IA, import)","tags":["Cartes"],"operationId":"post_tickets_bulk","security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"epic":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false},{"type":"null"}]},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}}},"required":["epic","tickets"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"epic":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":100000}},"required":["title"]},"tickets":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":100000},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"position":{"default":"bottom","type":"string","enum":["top","bottom"]},"afterId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"urgency":{"default":2,"type":"integer","minimum":1,"maximum":5},"estimate":{"anyOf":[{"type":"number","minimum":0,"maximum":1000},{"type":"null"}]},"startDate":{"anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"dueDate":{"anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"default":[],"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}}},"required":["title"]}}},"required":["projectId","tickets"]}}}}}},"/tickets/{id}":{"get":{"summary":"Fiche complète d’une carte (par id ou par clé, ex. TALT-87)","tags":["Cartes"],"operationId":"get_tickets_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":60}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"description":{"type":["string","null"]},"createdBy":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"reviewer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"assignees":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"checklistItems":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"text":{"type":"string"},"done":{"type":"boolean"},"rank":{"type":"string"},"doneAt":{"type":["string","null"]}},"required":["id","text","done","rank","doneAt"],"additionalProperties":false}},"links":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["BLOCKS","RELATES","DUPLICATES"]},"direction":{"type":"string","enum":["outgoing","incoming"]},"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]}},"required":["id","key","title","type","columnId","completedAt"],"additionalProperties":false}},"required":["id","type","direction","ticket"],"additionalProperties":false}},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]}},"required":["id","key","title","type","columnId","completedAt"],"additionalProperties":false},{"type":"null"}]},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]}},"required":["id","key","title","type","columnId","completedAt"],"additionalProperties":false}},"attachments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}},"externalLinks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"provider":{"type":"string","enum":["GITHUB","GITLAB"]},"kind":{"type":"string","enum":["PULL_REQUEST","COMMIT","BRANCH"]},"url":{"type":"string"},"title":{"type":["string","null"]},"state":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","provider","kind","url","title","state","updatedAt"],"additionalProperties":false}},"clientEmail":{"type":["string","null"]},"clientName":{"type":["string","null"]},"reporterMeta":{"anyOf":[{},{"type":"null"}]},"timeSpentMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"permissions":{"type":"array","items":{"type":"string"}},"deletedAt":{"type":["string","null"]}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt","description","createdBy","reviewer","assignees","labels","checklistItems","links","parent","children","attachments","externalLinks","clientEmail","clientName","reporterMeta","timeSpentMinutes","permissions","deletedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Modifier une carte (champs fournis uniquement)","description":"Avec expectedVersion, la modification est refusée (409 VERSION_CONFLICT) si la carte a changé entre-temps.","tags":["Cartes"],"operationId":"patch_tickets_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"anyOf":[{"type":"string","maxLength":100000},{"type":"null"}]},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"urgency":{"type":"integer","minimum":1,"maximum":5},"estimate":{"anyOf":[{"type":"number","minimum":0,"maximum":1000},{"type":"null"}]},"startDate":{"anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"dueDate":{"anyOf":[{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},{"type":"null"}]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"expectedVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}}}}}},"delete":{"summary":"Mettre une carte à la corbeille (restaurable 30 jours)","tags":["Cartes"],"operationId":"delete_tickets_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/move":{"post":{"summary":"Déplacer une carte (colonne, position, sprint) : une seule écriture","description":"afterId : carte juste au-dessus ; beforeId : carte juste en dessous ; aucun : en bas de la colonne.","tags":["Cartes"],"operationId":"post_tickets_id_move","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false},"wipExceeded":{"type":"boolean"}},"required":["ticket","wipExceeded"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"beforeId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"afterId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"expectedVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["columnId"]}}}}}},"/tickets/{id}/restore":{"post":{"summary":"Restaurer une carte de la corbeille","tags":["Cartes"],"operationId":"post_tickets_id_restore","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/trash":{"get":{"summary":"Corbeille du projet (cartes supprimées depuis moins de 30 jours)","tags":["Cartes"],"operationId":"get_projects_id_trash","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"deletedAt":{"type":"string"},"deletedBy":{"type":["string","null"]}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt","deletedAt","deletedBy"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Vider la corbeille des cartes d’un projet (administrateurs)","tags":["Corbeille"],"operationId":"delete_projects_id_trash","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["count"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/activity":{"get":{"summary":"Historique complet de la carte","tags":["Cartes"],"operationId":"get_tickets_id_activity","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string"},"actor":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"data":{},"createdAt":{"type":"string"}},"required":["id","action","actor","data","createdAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/checklist":{"post":{"summary":"Ajouter un élément de checklist","tags":["Cartes"],"operationId":"post_tickets_id_checklist","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"text":{"type":"string"},"done":{"type":"boolean"},"rank":{"type":"string"},"doneAt":{"type":["string","null"]}},"required":["id","text","done","rank","doneAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":500},"afterId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["text"]}}}}}},"/checklist/{id}":{"patch":{"summary":"Cocher, décocher ou renommer un élément de checklist","tags":["Cartes"],"operationId":"patch_checklist_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"text":{"type":"string"},"done":{"type":"boolean"},"rank":{"type":"string"},"doneAt":{"type":["string","null"]}},"required":["id","text","done","rank","doneAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":500},"done":{"type":"boolean"}}}}}}},"delete":{"summary":"Retirer un élément de checklist","tags":["Cartes"],"operationId":"delete_checklist_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/links":{"post":{"summary":"Lier deux cartes (bloque, liée à, doublon de)","tags":["Cartes"],"operationId":"post_tickets_id_links","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"toId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["BLOCKS","RELATES","DUPLICATES"]}},"required":["toId","type"]}}}}}},"/links/{id}":{"delete":{"summary":"Supprimer un lien entre cartes","tags":["Cartes"],"operationId":"delete_links_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/time":{"post":{"summary":"Saisir du temps passé, ou démarrer le minuteur (sans durée)","tags":["Cartes"],"operationId":"post_tickets_id_time","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"minutes":{"type":["number","null"]},"running":{"type":"boolean"}},"required":["id","minutes","running"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"minutes":{"type":"integer","minimum":1,"maximum":1440},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},"note":{"type":"string","maxLength":500}}}}}}},"get":{"summary":"Temps passé sur la carte : total, saisies (les plus récentes d’abord), minuteur en cours","description":"available : le suivi du temps fait partie de l’offre ; sinon requiredPlan dit laquelle.","tags":["Cartes"],"operationId":"get_tickets_id_time","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"type":["string","null"]},"totalMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"minutes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"note":{"type":["string","null"]},"startedAt":{"type":"string"},"endedAt":{"type":["string","null"]},"running":{"type":"boolean"}},"required":["id","user","minutes","note","startedAt","endedAt","running"],"additionalProperties":false}}},"required":["available","requiredPlan","totalMinutes","entries"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/time/{id}/stop":{"post":{"summary":"Arrêter le minuteur","tags":["Cartes"],"operationId":"post_time_id_stop","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"minutes":{"type":"number"}},"required":["id","minutes"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/time/{id}":{"delete":{"summary":"Supprimer une saisie de temps (la sienne, ou n’importe laquelle pour un administrateur du projet)","tags":["Cartes"],"operationId":"delete_time_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/timer":{"get":{"summary":"Le minuteur en cours de la personne connectée, et sa carte","tags":["Cartes"],"operationId":"get_me_timer","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"startedAt":{"type":"string"},"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id","key","title","projectId"],"additionalProperties":false}},"required":["id","startedAt","ticket"],"additionalProperties":false},{"type":"null"}]}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/similar":{"post":{"summary":"Cartes du projet qui ressemblent à un titre (pendant la saisie d’une nouvelle carte)","description":"Gratuit : ressemblance des mots (racines françaises) et des trigrammes du titre. Cartes ouvertes et terminées depuis six mois.","tags":["Doublons"],"operationId":"post_projects_id_similar","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]},"score":{"type":"number"}},"required":["id","key","title","columnId","completedAt","score"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":300},"description":{"default":"","type":"string","maxLength":20000},"excludeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["title"]}}}}}},"/tickets/{id}/duplicates":{"get":{"summary":"Doublons possibles d’une carte : suggestions retenues (signalement client, IA), puis cartes ressemblantes","tags":["Doublons"],"operationId":"get_tickets_id_duplicates","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]},"score":{"type":"number"},"source":{"type":"string","enum":["SIMILAR","AI"]},"reason":{"type":["string","null"]},"flagged":{"type":"boolean"}},"required":["id","key","title","columnId","completedAt","score","source","reason","flagged"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/duplicates/{candidateId}/dismiss":{"post":{"summary":"Ce n’est pas un doublon : la suggestion ne revient plus","tags":["Doublons"],"operationId":"post_tickets_id_duplicates_candidateId_dismiss","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"candidateId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/merge":{"post":{"summary":"Fusionner une carte dans l’originale : lien « doublon de », contenu en commentaire, carte passée dans Terminé","tags":["Doublons"],"operationId":"post_tickets_id_merge","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"target":{"type":"string"}},"required":["key","target"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["targetId"]}}}}}},"/tickets/{id}/comments":{"get":{"summary":"Commentaires d’une carte (fil principal, du plus récent au plus ancien)","tags":["Commentaires"],"operationId":"get_tickets_id_comments","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"parentId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":1,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ticketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"body":{"type":"string"},"source":{"type":"string","enum":["APP","EMAIL","MCP","PORTAL"]},"createdAt":{"type":"string"},"editedAt":{"type":["string","null"]},"deletedAt":{"type":["string","null"]},"replyCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","ticketId","author","parentId","body","source","createdAt","editedAt","deletedAt","replyCount"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Commenter (les @mentions préviennent les personnes citées)","tags":["Commentaires"],"operationId":"post_tickets_id_comments","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ticketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"body":{"type":"string"},"source":{"type":"string","enum":["APP","EMAIL","MCP","PORTAL"]},"createdAt":{"type":"string"},"editedAt":{"type":["string","null"]},"deletedAt":{"type":["string","null"]},"replyCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","ticketId","author","parentId","body","source","createdAt","editedAt","deletedAt","replyCount"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":20000},"parentId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["body"]}}}}}},"/comments/{id}":{"patch":{"summary":"Modifier son commentaire","tags":["Commentaires"],"operationId":"patch_comments_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ticketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"body":{"type":"string"},"source":{"type":"string","enum":["APP","EMAIL","MCP","PORTAL"]},"createdAt":{"type":"string"},"editedAt":{"type":["string","null"]},"deletedAt":{"type":["string","null"]},"replyCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","ticketId","author","parentId","body","source","createdAt","editedAt","deletedAt","replyCount"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":20000}},"required":["body"]}}}}},"delete":{"summary":"Supprimer un commentaire (son auteur, ou un administrateur du projet)","tags":["Commentaires"],"operationId":"delete_comments_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/attachments":{"post":{"summary":"Joindre un fichier (taille maximale selon l’offre)","tags":["Pièces jointes"],"operationId":"post_tickets_id_attachments","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"Champ « file »","content":{"multipart/form-data":{"schema":{"type":"object"}}}}}},"/attachments/{id}":{"get":{"summary":"Lien de téléchargement temporaire d’une pièce jointe","tags":["Pièces jointes"],"operationId":"get_attachments_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Retirer une pièce jointe","tags":["Pièces jointes"],"operationId":"delete_attachments_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/sprints":{"get":{"summary":"Sprints du projet (les 50 derniers)","tags":["Sprints"],"operationId":"get_projects_id_sprints","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Planifier un sprint","tags":["Sprints"],"operationId":"post_projects_id_sprints","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"goal":{"type":"string","maxLength":500},"startDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},"endDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},"capacity":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"number","minimum":0,"maximum":1000}}}}}}}}},"/sprints/{id}":{"patch":{"summary":"Modifier un sprint (nom, objectif, dates, capacité)","tags":["Sprints"],"operationId":"patch_sprints_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"goal":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"startDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},"endDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},"capacity":{"type":"object","propertyNames":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"additionalProperties":{"type":"number","minimum":0,"maximum":1000}}}}}}}},"delete":{"summary":"Supprimer un sprint planifié (ses cartes retournent au backlog)","tags":["Sprints"],"operationId":"delete_sprints_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/sprints/{id}/start":{"post":{"summary":"Démarrer le sprint (un seul sprint actif par projet)","tags":["Sprints"],"operationId":"post_sprints_id_start","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]},"endDate":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}]}}}}}}}},"/sprints/{id}/close":{"post":{"summary":"Clôturer le sprint : les cartes non finies passent au sprint suivant, au backlog ou à un nouveau sprint","tags":["Sprints"],"operationId":"post_sprints_id_close","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"closed":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false},"carriedOver":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"next":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false},{"type":"null"}]}},"required":["closed","carriedOver","next"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"carryOver":{"default":{"to":"new"},"oneOf":[{"type":"object","properties":{"to":{"type":"string","const":"backlog"}},"required":["to"]},{"type":"object","properties":{"to":{"type":"string","const":"sprint"},"sprintId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["to","sprintId"]},{"type":"object","properties":{"to":{"type":"string","const":"new"}},"required":["to"]}]}}}}}}}},"/sprints/{id}/burndown":{"get":{"summary":"Burndown en temps réel, avec date de fin estimée","tags":["Sprints"],"operationId":"get_sprints_id_burndown","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"sprintId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"unit":{"type":"string","enum":["points","tickets"]},"points":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"remaining":{"type":"number"},"ideal":{"type":"number"},"scope":{"type":"number"}},"required":["date","remaining","ideal","scope"],"additionalProperties":false}},"forecastEnd":{"type":["string","null"]}},"required":["sprintId","unit","points","forecastEnd"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/velocity":{"get":{"summary":"Vélocité des six derniers sprints et date de fin estimée du backlog","tags":["Sprints"],"operationId":"get_projects_id_velocity","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"sprints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"committed":{"type":"number"},"completed":{"type":"number"},"closedAt":{"type":"string"}},"required":["id","name","committed","completed","closedAt"],"additionalProperties":false}},"average":{"type":["number","null"]},"forecast":{"type":"object","properties":{"remainingPoints":{"type":"number"},"sprintsNeeded":{"type":["number","null"]},"estimatedEnd":{"type":["string","null"]}},"required":["remainingPoints","sprintsNeeded","estimatedEnd"],"additionalProperties":false}},"required":["sprints","average","forecast"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications":{"get":{"summary":"Boîte de réception (filtres : non lues, mentions, assignations, clients)","tags":["Notifications"],"operationId":"get_notifications","parameters":[{"name":"filter","in":"query","required":false,"schema":{"default":"all","type":"string","enum":["all","unread","mentions","assigned","clients"]}},{"name":"projectId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":1,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string"},"message":{"type":"string"},"actor":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"ticket":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"}},"required":["id","key","title"],"additionalProperties":false},{"type":"null"}]},"data":{},"readAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","type","message","actor","projectId","ticket","data","readAt","createdAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]},"unreadCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["items","nextCursor","unreadCount"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications/read":{"post":{"summary":"Marquer comme lues (une liste, ou toutes)","tags":["Notifications"],"operationId":"post_notifications_read","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["updated"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"maxItems":200,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"all":{"type":"boolean"}}}}}}}},"/notifications/{id}/archive":{"post":{"summary":"Ranger une notification hors de la boîte de réception","tags":["Notifications"],"operationId":"post_notifications_id_archive","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/search":{"get":{"summary":"Recherche Ctrl K : texte libre et filtres (assigné:moi urgence:4+ étiquette:bug échéance:retard)","tags":["Recherche"],"operationId":"get_search","parameters":[{"name":"q","in":"query","required":false,"schema":{"default":"","type":"string","maxLength":300}},{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":50}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"text":{"type":"string"},"filters":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["text","filters"],"additionalProperties":false},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"highlight":{"type":["string","null"]}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt","highlight"],"additionalProperties":false}},"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"color":{"type":"string"}},"required":["id","key","name","color"],"additionalProperties":false}},"people":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["query","tickets","projects","people"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/forms/{token}":{"get":{"summary":"Formulaire public de signalement d’un projet","tags":["Public"],"operationId":"get_public_forms_token","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":16,"maxLength":64,"pattern":"^[A-Za-z0-9_-]+$"}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"projectName":{"type":"string"},"color":{"type":"string"},"iconUrl":{"type":["string","null"]},"bannerUrl":{"type":["string","null"]},"settings":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"intro":{"type":"string","maxLength":2000},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"askEmail":{"default":"optional","type":"string","enum":["required","optional","hidden"]},"fields":{"default":[],"maxItems":15,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9_]{1,30}$"},"label":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","enum":["text","textarea","select","url"]},"required":{"default":false,"type":"boolean"},"options":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":80}}},"required":["key","label","type","required"],"additionalProperties":false}},"defaultColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"defaultLabelIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"notifyResolved":{"default":true,"type":"boolean"}},"required":["askEmail","fields","defaultLabelIds","notifyResolved"],"additionalProperties":false}},"required":["key","projectName","color","iconUrl","bannerUrl","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/forms/{token}/reports":{"post":{"summary":"Envoyer un signalement (jusqu’à 5 fichiers de 10 Mo)","tags":["Public"],"operationId":"post_public_forms_token_reports","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":16,"maxLength":64,"pattern":"^[A-Za-z0-9_-]+$"}}],"security":[],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"message":{"type":"string"}},"required":["key","message"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"title, description, email, name, fields[clé], files (5 au plus)","content":{"multipart/form-data":{"schema":{"type":"object"}}}}}},"/public/widget/config":{"get":{"summary":"Réglages du widget intégré (en-tête X-Widget-Key) : couleur, email demandé ou non","tags":["Public"],"operationId":"get_public_widget_config","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"accentColor":{"type":["string","null"]},"askEmail":{"type":"string","enum":["required","optional","hidden"]}},"required":["accentColor","askEmail"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/widget/reports":{"post":{"summary":"Signalement depuis le widget intégré (en-tête X-Widget-Key, origine autorisée)","description":"Capture d’écran annotée (champ screenshot), navigateur, URL et erreurs console jointes automatiquement.","tags":["Public"],"operationId":"post_public_widget_reports","security":[],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"message":{"type":"string"}},"required":["key","message"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"title, description, email, meta (JSON), screenshot (image)","content":{"multipart/form-data":{"schema":{"type":"object"}}}}}},"/public/share/{token}":{"get":{"summary":"Tableau partagé en lecture seule, tel que le niveau du lien le montre","description":"view dit ce que montre le lien (détail des cartes, commentaires, pièces jointes, historique, sprints, archives, personnes) : la page publique s’y adapte. Lien expiré : 404 avec details.reason = expired.","tags":["Public"],"operationId":"get_public_share_token","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":20,"maxLength":80}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"methodology":{"type":"string","enum":["KANBAN","SCRUM"]},"estimationScale":{"type":"string","enum":["NONE","FIBONACCI","TSHIRT","HOURS"]},"defaultSort":{"type":"string"},"color":{"type":"string"},"coverSeed":{"type":"number"},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"iconUrl":{"type":["string","null"]},"sharedAt":{"type":["string","null"]}},"required":["id","key","name","description","methodology","estimationScale","defaultSort","color","coverSeed","background","iconUrl","sharedAt"],"additionalProperties":false},"view":{"type":"object","properties":{"details":{"type":"boolean"},"comments":{"type":"boolean"},"attachments":{"type":"boolean"},"activity":{"type":"boolean"},"planning":{"type":"boolean"},"archive":{"type":"boolean"},"people":{"type":"string","enum":["HIDDEN","FIRST_NAME","FULL"]},"level":{"type":"string","enum":["ESSENTIAL","TEAM","CUSTOM"]},"expiresAt":{"type":["string","null"]}},"required":["details","comments","attachments","activity","planning","archive","people","level","expiresAt"],"additionalProperties":false},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]},"rank":{"type":"string"},"color":{"type":["string","null"]},"wipLimit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","name","kind","rank","color","wipLimit"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"people":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}},"sprints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"goal":{"type":["string","null"]},"status":{"type":"string","enum":["PLANNED","ACTIVE","CLOSED"]},"startDate":{"type":["string","null"]},"endDate":{"type":["string","null"]},"capacity":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"committedPoints":{"type":["number","null"]},"completedPoints":{"type":["number","null"]},"startedAt":{"type":["string","null"]},"closedAt":{"type":["string","null"]},"scope":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"donePoints":{"type":"number"},"doneTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","points","donePoints","doneTickets"],"additionalProperties":false}},"required":["id","projectId","number","name","goal","status","startDate","endDate","capacity","committedPoints","completedPoints","startedAt","closedAt","scope"],"additionalProperties":false}},"archive":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"months":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["month","count"],"additionalProperties":false}}},"required":["count","months"],"additionalProperties":false},"generatedAt":{"type":"string"}},"required":["project","view","columns","labels","people","tickets","sprints","archive","generatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/share/{token}/tickets/{key}":{"get":{"summary":"Fiche d’une carte du tableau partagé (selon le niveau du lien)","tags":["Public"],"operationId":"get_public_share_token_tickets_key","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":20,"maxLength":80}},{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":24}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"description":{"type":["string","null"]},"createdBy":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"reviewer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"assignees":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}},"labels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"scope":{"type":"string","enum":["project","workspace"]}},"required":["id","name","color","scope"],"additionalProperties":false}},"checklistItems":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"text":{"type":"string"},"done":{"type":"boolean"},"rank":{"type":"string"},"doneAt":{"type":["string","null"]}},"required":["id","text","done","rank","doneAt"],"additionalProperties":false}},"links":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["BLOCKS","RELATES","DUPLICATES"]},"direction":{"type":"string","enum":["outgoing","incoming"]},"ticket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]}},"required":["id","key","title","type","columnId","completedAt"],"additionalProperties":false}},"required":["id","type","direction","ticket"],"additionalProperties":false}},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]}},"required":["id","key","title","type","columnId","completedAt"],"additionalProperties":false},{"type":"null"}]},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]}},"required":["id","key","title","type","columnId","completedAt"],"additionalProperties":false}},"attachments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}},"externalLinks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"provider":{"type":"string","enum":["GITHUB","GITLAB"]},"kind":{"type":"string","enum":["PULL_REQUEST","COMMIT","BRANCH"]},"url":{"type":"string"},"title":{"type":["string","null"]},"state":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","provider","kind","url","title","state","updatedAt"],"additionalProperties":false}},"clientEmail":{"type":["string","null"]},"clientName":{"type":["string","null"]},"reporterMeta":{"anyOf":[{},{"type":"null"}]},"timeSpentMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"permissions":{"type":"array","items":{"type":"string"}},"deletedAt":{"type":["string","null"]}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt","description","createdBy","reviewer","assignees","labels","checklistItems","links","parent","children","attachments","externalLinks","clientEmail","clientName","reporterMeta","timeSpentMinutes","permissions","deletedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/share/{token}/tickets/{key}/comments":{"get":{"summary":"Commentaires d’une carte du tableau partagé (si le lien les montre)","tags":["Public"],"operationId":"get_public_share_token_tickets_key_comments","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":20,"maxLength":80}},{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":24}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ticketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"body":{"type":"string"},"source":{"type":"string","enum":["APP","EMAIL","MCP","PORTAL"]},"createdAt":{"type":"string"},"editedAt":{"type":["string","null"]},"deletedAt":{"type":["string","null"]},"replyCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","ticketId","author","parentId","body","source","createdAt","editedAt","deletedAt","replyCount"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/share/{token}/tickets/{key}/activity":{"get":{"summary":"Historique d’une carte du tableau partagé (si le lien le montre), sans les échanges avec les clients","tags":["Public"],"operationId":"get_public_share_token_tickets_key_activity","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":20,"maxLength":80}},{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":24}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":1,"maximum":100}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string"},"actor":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"data":{},"createdAt":{"type":"string"}},"required":["id","action","actor","data","createdAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/share/{token}/attachments/{id}":{"get":{"summary":"Lien de téléchargement temporaire d’une pièce jointe du tableau partagé","tags":["Public"],"operationId":"get_public_share_token_attachments_id","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":20,"maxLength":80}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/share/{token}/archive/{month}":{"get":{"summary":"Cartes terminées d’un mois archivé (AAAA-MM), si le lien montre les archives","tags":["Public"],"operationId":"get_public_share_token_archive_month","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","minLength":20,"maxLength":80}},{"name":"month","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"}}],"security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}}},"required":["tickets"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/link-preview":{"get":{"summary":"Balises d’aperçu d’une page du front (fragment HTML inséré par nginx)","description":"Adresse de la page dans X-Original-URI (nginx) ou ?u=. Réponse text/html : <title> et <meta> Open Graph et Twitter.","tags":["Public"],"operationId":"get_public_link_preview","parameters":[{"name":"u","in":"query","required":false,"schema":{"type":"string","maxLength":2048,"pattern":"^\\/"}}],"security":[],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/public/link-preview/image":{"get":{"summary":"Image d’aperçu d’une page du front (JPEG 1200 × 630)","tags":["Public"],"operationId":"get_public_link_preview_image","parameters":[{"name":"u","in":"query","required":true,"schema":{"type":"string","maxLength":2048,"pattern":"^\\/"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["fr","en"]}},{"name":"v","in":"query","required":false,"schema":{"type":"string","maxLength":32}}],"security":[],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/ai-usage":{"get":{"summary":"Crédits IA du mois, coût de chaque fonction, date du renouvellement","tags":["IA"],"operationId":"get_workspaces_id_ai_usage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"used":{"type":"number"},"limit":{"type":["number","null"]},"available":{"type":"boolean"},"resetsAt":{"type":"string"},"costs":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}}},"required":["used","limit","available","resetsAt","costs"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/ai-usage/details":{"get":{"summary":"Détail des crédits IA du mois : par jour, par fonction, par personne (administrateurs), mois précédent","tags":["IA"],"operationId":"get_workspaces_id_ai_usage_details","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string"},"credits":{"type":"number"}},"required":["day","credits"],"additionalProperties":false}},"features":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string"},"credits":{"type":"number"},"calls":{"type":"number"}},"required":["feature","credits","calls"],"additionalProperties":false}},"people":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"credits":{"type":"number"},"calls":{"type":"number"}},"required":["id","firstName","lastName","avatarUrl","credits","calls"],"additionalProperties":false}},{"type":"null"}]},"mine":{"type":"object","properties":{"credits":{"type":"number"},"calls":{"type":"number"}},"required":["credits","calls"],"additionalProperties":false},"previousMonth":{"type":"number"}},"required":["days","features","people","mine","previousMonth"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ai/split":{"post":{"summary":"Découper une idée en épopée, stories et critères d’acceptation (brouillon à valider)","description":"Le brouillon se crée ensuite tel quel ou modifié avec POST /tickets/bulk. Au fil de l’écriture avec Accept: text/event-stream.","tags":["IA"],"operationId":"post_ai_split","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"epic":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"default":"","type":"string","maxLength":5000}},"required":["title","description"],"additionalProperties":false},"stories":{"minItems":1,"maxItems":15,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"default":"","type":"string","maxLength":5000},"acceptanceCriteria":{"default":[],"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"estimate":{"default":null,"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]}},"required":["title","description","acceptanceCriteria","estimate"],"additionalProperties":false}}},"required":["epic","stories"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"idea":{"type":"string","minLength":10,"maxLength":4000}},"required":["projectId","idea"]}}}}}},"/ai/summarize":{"post":{"summary":"Résumer une carte et son fil de commentaires, ou un sprint (bilan prêt à envoyer)","description":"Au fil de l’écriture avec Accept: text/event-stream.","tags":["IA"],"operationId":"post_ai_summarize","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"string"}},"required":["summary"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sprintId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}}}},"/ai/client-reply":{"post":{"summary":"Brouillon de réponse au client, dans le ton de l’équipe (toujours relu avant envoi)","description":"Au fil de l’écriture avec Accept: text/event-stream.","tags":["IA"],"operationId":"post_ai_client_reply","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"draft":{"type":"string"}},"required":["draft"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"intention":{"type":"string","minLength":3,"maxLength":1000}},"required":["ticketId","intention"]}}}}}},"/ai/describe":{"post":{"summary":"Rédiger ou structurer la description d’une carte à partir de son titre (brouillon à valider)","description":"Avec une description existante, l’IA la structure sans inventer de faits. Au fil de l’écriture avec Accept: text/event-stream.","tags":["IA"],"operationId":"post_ai_describe","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string"}},"required":["description"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string","minLength":3,"maxLength":300},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"description":{"default":"","type":"string","maxLength":10000}},"required":["projectId","title"]}}}}}},"/ai/duplicates":{"post":{"summary":"Chercher les doublons d’une carte avec l’IA, même écrits avec d’autres mots (1 crédit)","description":"L’IA relit la carte face aux cartes ressemblantes et aux 80 plus récentes du projet ; les doublons retenus deviennent des suggestions de la fiche, avec leur raison. Une suggestion écartée ne revient pas.","tags":["IA"],"operationId":"post_ai_duplicates","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"found":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"completedAt":{"type":["string","null"]},"score":{"type":"number"},"source":{"type":"string","enum":["SIMILAR","AI"]},"reason":{"type":["string","null"]},"flagged":{"type":"boolean"}},"required":["id","key","title","columnId","completedAt","score","source","reason","flagged"],"additionalProperties":false}}},"required":["found","items"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticketId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["ticketId"]}}}}}},"/ai/suggest-labels":{"post":{"summary":"Étiquettes suggérées pour une carte (correspondance gratuite, sans crédit)","tags":["IA"],"operationId":"post_ai_suggest_labels","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["labelIds"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string","maxLength":300},"description":{"default":"","type":"string","maxLength":20000}},"required":["projectId","title"]}}}}}},"/projects/{id}/automations":{"get":{"summary":"Règles d’automatisation du projet","tags":["Automatisations"],"operationId":"get_projects_id_automations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"default":true,"type":"boolean"},"trigger":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"ticket.created"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.moved"},"toColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"toKind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.completed"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.labeled"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.assigned"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"comment.created"}},"required":["type"],"additionalProperties":false}]},"conditions":{"default":[],"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"field":{"type":"string","const":"urgency"},"op":{"type":"string","enum":["gte","lte","eq"]},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["field","op","value"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"label"},"op":{"type":"string","enum":["has","missing"]},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op","labelId"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"type"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"required":["field","op","value"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"assignee"},"op":{"type":"string","enum":["none","any","has"]},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"source"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]}},"required":["field","op","value"],"additionalProperties":false}]}},"actions":{"minItems":1,"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"assign"},"userIds":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["type","userIds"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"assignReviewer"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setReviewer"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"addLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"removeLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"move"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","columnId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setUrgency"},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setDueIn"},"days":{"type":"integer","minimum":0,"maximum":365}},"required":["type","days"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"target":{"type":"string","enum":["assignees","reviewer","creator","users"]},"userIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"message":{"type":"string","maxLength":300}},"required":["type","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"comment"},"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","maxLength":2000},"message":{"type":"string","maxLength":500}},"required":["type","url"],"additionalProperties":false}]}},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lastRunAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["name","enabled","trigger","conditions","actions","id","projectId","runCount","lastRunAt","lastError","createdAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Créer une règle (déclencheur, conditions, actions)","tags":["Automatisations"],"operationId":"post_projects_id_automations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"default":true,"type":"boolean"},"trigger":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"ticket.created"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.moved"},"toColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"toKind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.completed"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.labeled"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.assigned"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"comment.created"}},"required":["type"],"additionalProperties":false}]},"conditions":{"default":[],"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"field":{"type":"string","const":"urgency"},"op":{"type":"string","enum":["gte","lte","eq"]},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["field","op","value"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"label"},"op":{"type":"string","enum":["has","missing"]},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op","labelId"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"type"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"required":["field","op","value"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"assignee"},"op":{"type":"string","enum":["none","any","has"]},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"source"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]}},"required":["field","op","value"],"additionalProperties":false}]}},"actions":{"minItems":1,"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"assign"},"userIds":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["type","userIds"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"assignReviewer"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setReviewer"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"addLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"removeLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"move"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","columnId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setUrgency"},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setDueIn"},"days":{"type":"integer","minimum":0,"maximum":365}},"required":["type","days"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"target":{"type":"string","enum":["assignees","reviewer","creator","users"]},"userIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"message":{"type":"string","maxLength":300}},"required":["type","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"comment"},"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","maxLength":2000},"message":{"type":"string","maxLength":500}},"required":["type","url"],"additionalProperties":false}]}},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lastRunAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["name","enabled","trigger","conditions","actions","id","projectId","runCount","lastRunAt","lastError","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"default":true,"type":"boolean"},"trigger":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"ticket.created"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.moved"},"toColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"toKind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.completed"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.labeled"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.assigned"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"comment.created"}},"required":["type"]}]},"conditions":{"default":[],"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"field":{"type":"string","const":"urgency"},"op":{"type":"string","enum":["gte","lte","eq"]},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["field","op","value"]},{"type":"object","properties":{"field":{"type":"string","const":"label"},"op":{"type":"string","enum":["has","missing"]},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op","labelId"]},{"type":"object","properties":{"field":{"type":"string","const":"type"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"required":["field","op","value"]},{"type":"object","properties":{"field":{"type":"string","const":"assignee"},"op":{"type":"string","enum":["none","any","has"]},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op"]},{"type":"object","properties":{"field":{"type":"string","const":"source"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]}},"required":["field","op","value"]}]}},"actions":{"minItems":1,"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"assign"},"userIds":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["type","userIds"]},{"type":"object","properties":{"type":{"type":"string","const":"assignReviewer"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"setReviewer"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","userId"]},{"type":"object","properties":{"type":{"type":"string","const":"addLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"]},{"type":"object","properties":{"type":{"type":"string","const":"removeLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"]},{"type":"object","properties":{"type":{"type":"string","const":"move"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","columnId"]},{"type":"object","properties":{"type":{"type":"string","const":"setUrgency"},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"setDueIn"},"days":{"type":"integer","minimum":0,"maximum":365}},"required":["type","days"]},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"target":{"type":"string","enum":["assignees","reviewer","creator","users"]},"userIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"message":{"type":"string","maxLength":300}},"required":["type","target"]},{"type":"object","properties":{"type":{"type":"string","const":"comment"},"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["type","body"]},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","maxLength":2000},"message":{"type":"string","maxLength":500}},"required":["type","url"]}]}}},"required":["name","trigger","actions"]}}}}}},"/projects/{id}/automations/webhook-test":{"post":{"summary":"Envoyer un message d’essai à un webhook Slack, Discord ou Teams","description":"Même format que les messages des règles, avec une carte d’exemple. Une erreur dit ce que le service a répondu.","tags":["Automatisations"],"operationId":"post_projects_id_automations_webhook_test","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"service":{"type":"string","enum":["slack","discord","teams"]}},"required":["service"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2000},"message":{"type":"string","maxLength":500}},"required":["url"]}}}}}},"/automations/{id}":{"patch":{"summary":"Modifier ou mettre en pause une règle","tags":["Automatisations"],"operationId":"patch_automations_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"default":true,"type":"boolean"},"trigger":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"ticket.created"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.moved"},"toColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"toKind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.completed"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.labeled"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"ticket.assigned"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"comment.created"}},"required":["type"],"additionalProperties":false}]},"conditions":{"default":[],"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"field":{"type":"string","const":"urgency"},"op":{"type":"string","enum":["gte","lte","eq"]},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["field","op","value"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"label"},"op":{"type":"string","enum":["has","missing"]},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op","labelId"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"type"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"required":["field","op","value"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"assignee"},"op":{"type":"string","enum":["none","any","has"]},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op"],"additionalProperties":false},{"type":"object","properties":{"field":{"type":"string","const":"source"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]}},"required":["field","op","value"],"additionalProperties":false}]}},"actions":{"minItems":1,"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"assign"},"userIds":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["type","userIds"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"assignReviewer"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setReviewer"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","userId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"addLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"removeLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"move"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","columnId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setUrgency"},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"setDueIn"},"days":{"type":"integer","minimum":0,"maximum":365}},"required":["type","days"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"target":{"type":"string","enum":["assignees","reviewer","creator","users"]},"userIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"message":{"type":"string","maxLength":300}},"required":["type","target"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"comment"},"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["type","body"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","maxLength":2000},"message":{"type":"string","maxLength":500}},"required":["type","url"],"additionalProperties":false}]}},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lastRunAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["name","enabled","trigger","conditions","actions","id","projectId","runCount","lastRunAt","lastError","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"default":true,"type":"boolean"},"trigger":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"ticket.created"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.moved"},"toColumnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"toKind":{"type":"string","enum":["BACKLOG","TODO","IN_PROGRESS","REVIEW","DONE"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.completed"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.labeled"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"ticket.assigned"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"comment.created"}},"required":["type"]}]},"conditions":{"default":[],"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"field":{"type":"string","const":"urgency"},"op":{"type":"string","enum":["gte","lte","eq"]},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["field","op","value"]},{"type":"object","properties":{"field":{"type":"string","const":"label"},"op":{"type":"string","enum":["has","missing"]},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op","labelId"]},{"type":"object","properties":{"field":{"type":"string","const":"type"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"required":["field","op","value"]},{"type":"object","properties":{"field":{"type":"string","const":"assignee"},"op":{"type":"string","enum":["none","any","has"]},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["field","op"]},{"type":"object","properties":{"field":{"type":"string","const":"source"},"op":{"type":"string","const":"eq"},"value":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]}},"required":["field","op","value"]}]}},"actions":{"minItems":1,"maxItems":10,"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"assign"},"userIds":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["type","userIds"]},{"type":"object","properties":{"type":{"type":"string","const":"assignReviewer"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","const":"setReviewer"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","userId"]},{"type":"object","properties":{"type":{"type":"string","const":"addLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"]},{"type":"object","properties":{"type":{"type":"string","const":"removeLabel"},"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","labelId"]},{"type":"object","properties":{"type":{"type":"string","const":"move"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["type","columnId"]},{"type":"object","properties":{"type":{"type":"string","const":"setUrgency"},"value":{"type":"integer","minimum":1,"maximum":5}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","const":"setDueIn"},"days":{"type":"integer","minimum":0,"maximum":365}},"required":["type","days"]},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"target":{"type":"string","enum":["assignees","reviewer","creator","users"]},"userIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"message":{"type":"string","maxLength":300}},"required":["type","target"]},{"type":"object","properties":{"type":{"type":"string","const":"comment"},"body":{"type":"string","minLength":1,"maxLength":2000}},"required":["type","body"]},{"type":"object","properties":{"type":{"type":"string","const":"webhook"},"url":{"type":"string","maxLength":2000},"message":{"type":"string","maxLength":500}},"required":["type","url"]}]}}}}}}}},"delete":{"summary":"Supprimer une règle","tags":["Automatisations"],"operationId":"delete_automations_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/automations/{id}/runs":{"get":{"summary":"Dernières exécutions d’une règle","tags":["Automatisations"],"operationId":"get_automations_id_runs","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ticketId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"ok":{"type":"boolean"},"error":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","ticketId","ok","error","createdAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/recurrences":{"get":{"summary":"Cartes récurrentes du projet","tags":["Cartes récurrentes"],"operationId":"get_projects_id_recurrences","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"template":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":20000},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"urgency":{"default":2,"type":"integer","minimum":1,"maximum":5},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"labelIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"assigneeIds":{"default":[],"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"dueInDays":{"type":"integer","minimum":0,"maximum":365}},"required":["title","type","urgency","labelIds","assigneeIds","checklist"],"additionalProperties":false},"rule":{"type":"object","properties":{"freq":{"type":"string","enum":["DAILY","WEEKLY","MONTHLY"]},"interval":{"default":1,"type":"integer","minimum":1,"maximum":12},"weekdays":{"default":[1],"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"monthDay":{"default":1,"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"string","const":"last"}]},"hour":{"default":8,"type":"integer","minimum":0,"maximum":23},"minute":{"default":0,"type":"integer","minimum":0,"maximum":59}},"required":["freq","interval","weekdays","monthDay","hour","minute"],"additionalProperties":false},"timezone":{"default":"Europe/Paris","type":"string","maxLength":60},"enabled":{"default":true,"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string"},"nextRunAt":{"type":"string"},"lastRunAt":{"type":["string","null"]}},"required":["template","rule","timezone","enabled","id","projectId","description","nextRunAt","lastRunAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Programmer une carte récurrente (chaque lundi, chaque fin de mois…)","tags":["Cartes récurrentes"],"operationId":"post_projects_id_recurrences","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":20000},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"urgency":{"default":2,"type":"integer","minimum":1,"maximum":5},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"labelIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"assigneeIds":{"default":[],"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"dueInDays":{"type":"integer","minimum":0,"maximum":365}},"required":["title","type","urgency","labelIds","assigneeIds","checklist"],"additionalProperties":false},"rule":{"type":"object","properties":{"freq":{"type":"string","enum":["DAILY","WEEKLY","MONTHLY"]},"interval":{"default":1,"type":"integer","minimum":1,"maximum":12},"weekdays":{"default":[1],"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"monthDay":{"default":1,"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"string","const":"last"}]},"hour":{"default":8,"type":"integer","minimum":0,"maximum":23},"minute":{"default":0,"type":"integer","minimum":0,"maximum":59}},"required":["freq","interval","weekdays","monthDay","hour","minute"],"additionalProperties":false},"timezone":{"default":"Europe/Paris","type":"string","maxLength":60},"enabled":{"default":true,"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string"},"nextRunAt":{"type":"string"},"lastRunAt":{"type":["string","null"]}},"required":["template","rule","timezone","enabled","id","projectId","description","nextRunAt","lastRunAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":20000},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"urgency":{"default":2,"type":"integer","minimum":1,"maximum":5},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"labelIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"assigneeIds":{"default":[],"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"dueInDays":{"type":"integer","minimum":0,"maximum":365}},"required":["title"]},"rule":{"type":"object","properties":{"freq":{"type":"string","enum":["DAILY","WEEKLY","MONTHLY"]},"interval":{"default":1,"type":"integer","minimum":1,"maximum":12},"weekdays":{"default":[1],"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"monthDay":{"default":1,"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"string","const":"last"}]},"hour":{"default":8,"type":"integer","minimum":0,"maximum":23},"minute":{"default":0,"type":"integer","minimum":0,"maximum":59}},"required":["freq"]},"timezone":{"default":"Europe/Paris","type":"string","maxLength":60},"enabled":{"default":true,"type":"boolean"}},"required":["template","rule"]}}}}}},"/recurrences/{id}":{"patch":{"summary":"Modifier ou mettre en pause une récurrence","tags":["Cartes récurrentes"],"operationId":"patch_recurrences_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":20000},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"urgency":{"default":2,"type":"integer","minimum":1,"maximum":5},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"labelIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"assigneeIds":{"default":[],"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"dueInDays":{"type":"integer","minimum":0,"maximum":365}},"required":["title","type","urgency","labelIds","assigneeIds","checklist"],"additionalProperties":false},"rule":{"type":"object","properties":{"freq":{"type":"string","enum":["DAILY","WEEKLY","MONTHLY"]},"interval":{"default":1,"type":"integer","minimum":1,"maximum":12},"weekdays":{"default":[1],"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"monthDay":{"default":1,"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"string","const":"last"}]},"hour":{"default":8,"type":"integer","minimum":0,"maximum":23},"minute":{"default":0,"type":"integer","minimum":0,"maximum":59}},"required":["freq","interval","weekdays","monthDay","hour","minute"],"additionalProperties":false},"timezone":{"default":"Europe/Paris","type":"string","maxLength":60},"enabled":{"default":true,"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string"},"nextRunAt":{"type":"string"},"lastRunAt":{"type":["string","null"]}},"required":["template","rule","timezone","enabled","id","projectId","description","nextRunAt","lastRunAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","maxLength":20000},"type":{"default":"TASK","type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"urgency":{"default":2,"type":"integer","minimum":1,"maximum":5},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"labelIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"assigneeIds":{"default":[],"maxItems":30,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"dueInDays":{"type":"integer","minimum":0,"maximum":365}},"required":["title"]},"rule":{"type":"object","properties":{"freq":{"type":"string","enum":["DAILY","WEEKLY","MONTHLY"]},"interval":{"default":1,"type":"integer","minimum":1,"maximum":12},"weekdays":{"default":[1],"maxItems":7,"type":"array","items":{"type":"integer","minimum":1,"maximum":7}},"monthDay":{"default":1,"anyOf":[{"type":"integer","minimum":1,"maximum":31},{"type":"string","const":"last"}]},"hour":{"default":8,"type":"integer","minimum":0,"maximum":23},"minute":{"default":0,"type":"integer","minimum":0,"maximum":59}},"required":["freq"]},"timezone":{"default":"Europe/Paris","type":"string","maxLength":60},"enabled":{"default":true,"type":"boolean"}}}}}}},"delete":{"summary":"Supprimer une récurrence (les cartes déjà créées restent)","tags":["Cartes récurrentes"],"operationId":"delete_recurrences_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/recurrences/{id}/run":{"post":{"summary":"Créer la carte maintenant (sans attendre l’échéance)","tags":["Cartes récurrentes"],"operationId":"post_recurrences_id_run","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/imports":{"post":{"summary":"Importer un tableau Trello (JSON), Jira ou Asana (CSV) dans un nouveau projet","description":"Le traitement continue en arrière-plan : suivez-le avec GET /imports/:id ou l’événement temps réel import.finished.","tags":["Imports"],"operationId":"post_workspaces_id_imports","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"202":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"source":{"type":"string","enum":["TRELLO","JIRA_CSV","ASANA_CSV"]},"status":{"type":"string","enum":["QUEUED","RUNNING","DONE","FAILED"]},"stats":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"error":{"type":["string","null"]},"name":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","workspaceId","projectId","source","status","stats","error","name","createdAt","finishedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"file, source (AUTO par défaut : JSON = Trello, CSV reconnu à ses colonnes ; ou TRELLO, JIRA_CSV, ASANA_CSV), name (CSV : nom du projet)","content":{"multipart/form-data":{"schema":{"type":"object"}}}}}},"/imports/trello/config":{"get":{"summary":"Import direct depuis Trello : disponible ou non, et clé publique pour l’autorisation","tags":["Imports"],"operationId":"get_imports_trello_config","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"key":{"type":["string","null"]}},"required":["enabled","key"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/imports/trello/boards":{"post":{"summary":"Tableaux Trello de la personne (jeton d’autorisation Trello, jamais conservé)","tags":["Imports"],"operationId":"post_imports_trello_boards","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"boards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"url":{"type":["string","null"]},"lastActivity":{"type":["string","null"]},"background":{"type":"object","properties":{"color":{"type":["string","null"]},"image":{"type":["string","null"]}},"required":["color","image"],"additionalProperties":false},"lists":{"type":"array","items":{"type":"string"}}},"required":["id","name","description","url","lastActivity","background","lists"],"additionalProperties":false}}},"required":["boards"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9]{20,200}$"}},"required":["token"]}}}}}},"/workspaces/{id}/imports/trello":{"post":{"summary":"Importer directement des tableaux Trello (un projet par tableau)","description":"Chaque tableau est récupéré tout de suite auprès de Trello puis importé en arrière-plan, comme un export JSON.","tags":["Imports"],"operationId":"post_workspaces_id_imports_trello","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"202":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"source":{"type":"string","enum":["TRELLO","JIRA_CSV","ASANA_CSV"]},"status":{"type":"string","enum":["QUEUED","RUNNING","DONE","FAILED"]},"stats":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"error":{"type":["string","null"]},"name":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","workspaceId","projectId","source","status","stats","error","name","createdAt","finishedAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^[A-Za-z0-9]{20,200}$"},"boardIds":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-f0-9]{24}$"}}},"required":["token","boardIds"]}}}}}},"/me/imports":{"get":{"summary":"Mes imports récents (20 derniers)","tags":["Imports"],"operationId":"get_me_imports","security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"source":{"type":"string","enum":["TRELLO","JIRA_CSV","ASANA_CSV"]},"status":{"type":"string","enum":["QUEUED","RUNNING","DONE","FAILED"]},"stats":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"error":{"type":["string","null"]},"name":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]},"projectName":{"type":["string","null"]}},"required":["id","workspaceId","projectId","source","status","stats","error","name","createdAt","finishedAt","projectName"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/imports/{id}":{"get":{"summary":"État d’un import","tags":["Imports"],"operationId":"get_imports_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspaceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"source":{"type":"string","enum":["TRELLO","JIRA_CSV","ASANA_CSV"]},"status":{"type":"string","enum":["QUEUED","RUNNING","DONE","FAILED"]},"stats":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"error":{"type":["string","null"]},"name":{"type":["string","null"]},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","workspaceId","projectId","source","status","stats","error","name","createdAt","finishedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/integrations":{"get":{"summary":"Intégrations GitHub et GitLab du projet","tags":["Intégrations"],"operationId":"get_projects_id_integrations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"provider":{"type":"string","enum":["GITHUB","GITLAB"]},"enabled":{"type":"boolean"},"settings":{"type":"object","properties":{"reviewColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"doneColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"repository":{"type":"string","maxLength":200}},"additionalProperties":false},"webhookUrl":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","provider","enabled","settings","webhookUrl","createdAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Connecter un dépôt GitHub ou GitLab (renvoie l’URL et le secret du webhook, affiché une fois)","tags":["Intégrations"],"operationId":"post_projects_id_integrations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"provider":{"type":"string","enum":["GITHUB","GITLAB"]},"enabled":{"type":"boolean"},"settings":{"type":"object","properties":{"reviewColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"doneColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"repository":{"type":"string","maxLength":200}},"additionalProperties":false},"webhookUrl":{"type":"string"},"createdAt":{"type":"string"},"secret":{"type":"string"}},"required":["id","provider","enabled","settings","webhookUrl","createdAt","secret"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["GITHUB","GITLAB"]},"settings":{"default":{},"type":"object","properties":{"reviewColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"doneColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"repository":{"type":"string","maxLength":200}}}},"required":["provider"]}}}}}},"/integrations/{id}":{"patch":{"summary":"Modifier ou mettre en pause une intégration","tags":["Intégrations"],"operationId":"patch_integrations_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"provider":{"type":"string","enum":["GITHUB","GITLAB"]},"enabled":{"type":"boolean"},"settings":{"type":"object","properties":{"reviewColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"doneColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"repository":{"type":"string","maxLength":200}},"additionalProperties":false},"webhookUrl":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","provider","enabled","settings","webhookUrl","createdAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"settings":{"type":"object","properties":{"reviewColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"doneColumnId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"repository":{"type":"string","maxLength":200}}}}}}}}},"delete":{"summary":"Déconnecter le dépôt","tags":["Intégrations"],"operationId":"delete_integrations_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats/insights":{"get":{"summary":"Tableau de bord complet : une organisation ou un projet, une personne, une période comparée à la précédente","description":"Sans projectId : toute l’organisation (administrateurs). Avec projectId : un projet (toute personne qui y a accès). Offre Plus pour vos projets à vous, Équipe pour une organisation ; délais de réponse aux clients avec Business.","tags":["Statistiques"],"operationId":"get_stats_insights","parameters":[{"name":"workspaceId","in":"query","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"projectId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"assigneeId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"from","in":"query","required":false,"schema":{}},{"name":"to","in":"query","required":false,"schema":{}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"range":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"previous":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"step":{"type":"string","enum":["day","week"]},"access":{"type":"object","properties":{"clients":{"type":"boolean"},"clientsPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]}},"required":["clients","clientsPlan"],"additionalProperties":false},"totals":{"type":"object","properties":{"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inProgress":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cycleMedianHours":{"type":["number","null"]},"cycleP85Hours":{"type":["number","null"]},"estimated":{"type":"boolean"}},"required":["completed","created","points","open","inProgress","overdue","critical","cycleMedianHours","cycleP85Hours","estimated"],"additionalProperties":false},"previousTotals":{"type":"object","properties":{"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"cycleMedianHours":{"type":["number","null"]},"cycleP85Hours":{"type":["number","null"]}},"required":["completed","created","points","cycleMedianHours","cycleP85Hours"],"additionalProperties":false},"weekly":{"type":"array","items":{"type":"object","properties":{"start":{"type":"string"},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"previousCompleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["start","created","completed","points","previousCompleted"],"additionalProperties":false}},"flow":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string"},"todo":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"doing":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["at","todo","doing","done","overdue"],"additionalProperties":false}},"cycle":{"type":"object","properties":{"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"type":{"type":"string"},"completedAt":{"type":"string"},"days":{"type":"number"}},"required":["id","key","title","type","completedAt","days"],"additionalProperties":false}},"buckets":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["cards","buckets"],"additionalProperties":false},"byType":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["type","open","done"],"additionalProperties":false}},"byUrgency":{"type":"array","items":{"type":"object","properties":{"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["urgency","open","done"],"additionalProperties":false}},"byLabel":{"type":"array","items":{"type":"object","properties":{"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["labelId","name","color","open","done"],"additionalProperties":false}},"people":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inProgress":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"openPoints":{"type":"number"},"minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["user","open","inProgress","overdue","done","points","openPoints","minutes"],"additionalProperties":false}},"aging":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"column":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"assignees":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["id","key","title","days","column","urgency","assignees"],"additionalProperties":false}},"overdueCards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"title":{"type":"string"},"daysLate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"assignees":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false}}},"required":["id","key","title","daysLate","urgency","assignees"],"additionalProperties":false}},"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"iconUrl":{"type":["string","null"]},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousCompleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"weekly":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["id","key","name","iconUrl","open","overdue","critical","completed","previousCompleted","weekly"],"additionalProperties":false}},"clients":{"anyOf":[{"type":"object","properties":{"received":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousReceived":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"firstResponseMedianHours":{"type":["number","null"]},"resolutionMedianHours":{"type":["number","null"]},"weekly":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["received","previousReceived","open","firstResponseMedianHours","resolutionMedianHours","weekly"],"additionalProperties":false},{"type":"null"}]}},"required":["range","previous","step","access","totals","previousTotals","weekly","flow","cycle","byType","byUrgency","byLabel","people","aging","overdueCards","projects","clients"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/stats":{"get":{"summary":"Tableau de bord d’équipe : livraisons par semaine, temps de cycle, retards, répartition","tags":["Statistiques"],"operationId":"get_projects_id_stats","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"from","in":"query","required":false,"schema":{}},{"name":"to","in":"query","required":false,"schema":{}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"range":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"weekly":{"type":"array","items":{"type":"object","properties":{"week":{"type":"string"},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"}},"required":["week","created","completed","points"],"additionalProperties":false}},"cycleTime":{"type":"object","properties":{"averageHours":{"type":["number","null"]},"medianHours":{"type":["number","null"]},"p85Hours":{"type":["number","null"]},"sample":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["averageHours","medianHours","p85Hours","sample"],"additionalProperties":false},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdueTickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string"},"dueDate":{"type":"string"},"daysLate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","title","dueDate","daysLate"],"additionalProperties":false}},"byLabel":{"type":"array","items":{"type":"object","properties":{"labelId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"color":{"type":"string"},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["labelId","name","color","open","done"],"additionalProperties":false}},"byAssignee":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"}},"required":["user","open","done","points"],"additionalProperties":false}},"wip":{"type":"array","items":{"type":"object","properties":{"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"exceeded":{"type":"boolean"}},"required":["columnId","name","count","limit","exceeded"],"additionalProperties":false}}},"required":["range","weekly","cycleTime","open","overdue","overdueTickets","byLabel","byAssignee","wip"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/contributions":{"get":{"summary":"Projet de groupe équitable : qui a fait quoi, visible de toute l’équipe (toutes les offres)","tags":["Statistiques"],"operationId":"get_projects_id_contributions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"from","in":"query","required":false,"schema":{}},{"name":"to","in":"query","required":false,"schema":{}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"range":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"members":{"type":"array","items":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"},"checklistDone":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"share":{"type":"number"}},"required":["user","created","completed","points","checklistDone","comments","minutes","share"],"additionalProperties":false}}},"required":["range","members"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/stats":{"get":{"summary":"Vue d’ensemble de l’organisation : avancement, risques et charge par projet","tags":["Statistiques"],"operationId":"get_workspaces_id_stats","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"from","in":"query","required":false,"schema":{}},{"name":"to","in":"query","required":false,"schema":{}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"range":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"weekly":{"type":"array","items":{"type":"object","properties":{"week":{"type":"string"},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"}},"required":["week","created","completed","points"],"additionalProperties":false}},"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"open":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overdue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"critical":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completedInRange":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousPeriod":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","key","name","open","overdue","critical","completedInRange","previousPeriod"],"additionalProperties":false}}},"required":["range","weekly","projects"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me/stats":{"get":{"summary":"Mes statistiques personnelles (offre Plus et au-delà)","tags":["Statistiques"],"operationId":"get_me_stats","parameters":[{"name":"from","in":"query","required":false,"schema":{}},{"name":"to","in":"query","required":false,"schema":{}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"weekly":{"type":"array","items":{"type":"object","properties":{"week":{"type":"string"},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"points":{"type":"number"}},"required":["week","completed","points"],"additionalProperties":false}},"cycleTime":{"type":"object","properties":{"averageHours":{"type":["number","null"]},"medianHours":{"type":["number","null"]},"p85Hours":{"type":["number","null"]},"sample":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["averageHours","medianHours","p85Hours","sample"],"additionalProperties":false},"minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["weekly","cycleTime","minutes"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/client-messages":{"get":{"summary":"Conversation par email avec le client de la carte","tags":["Conversations"],"operationId":"get_tickets_id_client_messages","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"replyAddress":{"type":["string","null"]},"from":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["name","email"],"additionalProperties":false},"channel":{"type":"string","enum":["PLATFORM","COMPANY"]},"receives":{"type":"boolean"},"waitingSince":{"type":["string","null"]},"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"direction":{"type":"string","enum":["OUT","IN"]},"kind":{"type":"string","enum":["MESSAGE","RECEIPT","RESOLVED"]},"status":{"type":"string","enum":["SENT","FAILED","RECEIVED"]},"channel":{"type":"string","enum":["PLATFORM","COMPANY"]},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"from":{"anyOf":[{"type":"object","properties":{"email":{"type":"string"},"name":{"type":["string","null"]}},"required":["email","name"],"additionalProperties":false},{"type":"null"}]},"foreignSender":{"type":"boolean"},"subject":{"type":"string"},"body":{"type":"string"},"error":{"type":["string","null"]},"attachments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}},"createdAt":{"type":"string"}},"required":["id","direction","kind","status","channel","author","from","foreignSender","subject","body","error","attachments","createdAt"],"additionalProperties":false}}},"required":["replyAddress","from","channel","receives","waitingSince","messages"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/client-reply":{"post":{"summary":"Écrire au client de la carte (au nom de l’équipe, réponse rattachée à la carte)","tags":["Conversations"],"operationId":"post_tickets_id_client_reply","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean"},"message":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"direction":{"type":"string","enum":["OUT","IN"]},"kind":{"type":"string","enum":["MESSAGE","RECEIPT","RESOLVED"]},"status":{"type":"string","enum":["SENT","FAILED","RECEIVED"]},"channel":{"type":"string","enum":["PLATFORM","COMPANY"]},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"from":{"anyOf":[{"type":"object","properties":{"email":{"type":"string"},"name":{"type":["string","null"]}},"required":["email","name"],"additionalProperties":false},{"type":"null"}]},"foreignSender":{"type":"boolean"},"subject":{"type":"string"},"body":{"type":"string"},"error":{"type":["string","null"]},"attachments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}},"createdAt":{"type":"string"}},"required":["id","direction","kind","status","channel","author","from","foreignSender","subject","body","error","attachments","createdAt"],"additionalProperties":false}},"required":["sent","message"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":1,"maxLength":10000}},"required":["message"]}}}}}},"/client-messages/{id}/retry":{"post":{"summary":"Renvoyer un email au client resté en échec","tags":["Conversations"],"operationId":"post_client_messages_id_retry","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean"},"message":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"direction":{"type":"string","enum":["OUT","IN"]},"kind":{"type":"string","enum":["MESSAGE","RECEIPT","RESOLVED"]},"status":{"type":"string","enum":["SENT","FAILED","RECEIVED"]},"channel":{"type":"string","enum":["PLATFORM","COMPANY"]},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"from":{"anyOf":[{"type":"object","properties":{"email":{"type":"string"},"name":{"type":["string","null"]}},"required":["email","name"],"additionalProperties":false},{"type":"null"}]},"foreignSender":{"type":"boolean"},"subject":{"type":"string"},"body":{"type":"string"},"error":{"type":["string","null"]},"attachments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"},"uploader":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"scanStatus":{"type":"string","enum":["PENDING","CLEAN","INFECTED","SKIPPED"]},"createdAt":{"type":"string"}},"required":["id","fileName","mimeType","sizeBytes","url","uploader","scanStatus","createdAt"],"additionalProperties":false}},"createdAt":{"type":"string"}},"required":["id","direction","kind","status","channel","author","from","foreignSender","subject","body","error","attachments","createdAt"],"additionalProperties":false}},"required":["sent","message"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/mail":{"get":{"summary":"Serveur email de l’organisation pour écrire aux clients (administrateurs)","tags":["Conversations"],"operationId":"get_workspaces_id_mail","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"platformAddress":{"type":"string"},"inboundEnabled":{"type":"boolean"},"settings":{"anyOf":[{"type":"object","properties":{"fromName":{"type":["string","null"]},"fromAddress":{"type":"string"},"smtpEnabled":{"type":"boolean"},"smtpHost":{"type":["string","null"]},"smtpPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"smtpSecurity":{"type":"string","enum":["TLS","STARTTLS"]},"smtpUser":{"type":["string","null"]},"smtpHasPassword":{"type":"boolean"},"smtpCheckedAt":{"type":["string","null"]},"smtpError":{"type":["string","null"]},"imapEnabled":{"type":"boolean"},"imapHost":{"type":["string","null"]},"imapPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"imapSecurity":{"type":"string","enum":["TLS","STARTTLS"]},"imapUser":{"type":["string","null"]},"imapHasPassword":{"type":"boolean"},"imapMailbox":{"type":"string"},"imapProjectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"imapCheckedAt":{"type":["string","null"]},"imapError":{"type":["string","null"]}},"required":["fromName","fromAddress","smtpEnabled","smtpHost","smtpPort","smtpSecurity","smtpUser","smtpHasPassword","smtpCheckedAt","smtpError","imapEnabled","imapHost","imapPort","imapSecurity","imapUser","imapHasPassword","imapMailbox","imapProjectId","imapCheckedAt","imapError"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","platformAddress","inboundEnabled","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"Enregistrer le serveur email de l’organisation","description":"Activer l’envoi ou la relève essaie d’abord la connexion : rien n’est enregistré si le serveur refuse. La relève ne lit que les emails arrivés après l’activation.","tags":["Conversations"],"operationId":"put_workspaces_id_mail","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"platformAddress":{"type":"string"},"inboundEnabled":{"type":"boolean"},"settings":{"anyOf":[{"type":"object","properties":{"fromName":{"type":["string","null"]},"fromAddress":{"type":"string"},"smtpEnabled":{"type":"boolean"},"smtpHost":{"type":["string","null"]},"smtpPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"smtpSecurity":{"type":"string","enum":["TLS","STARTTLS"]},"smtpUser":{"type":["string","null"]},"smtpHasPassword":{"type":"boolean"},"smtpCheckedAt":{"type":["string","null"]},"smtpError":{"type":["string","null"]},"imapEnabled":{"type":"boolean"},"imapHost":{"type":["string","null"]},"imapPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"imapSecurity":{"type":"string","enum":["TLS","STARTTLS"]},"imapUser":{"type":["string","null"]},"imapHasPassword":{"type":"boolean"},"imapMailbox":{"type":"string"},"imapProjectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"imapCheckedAt":{"type":["string","null"]},"imapError":{"type":["string","null"]}},"required":["fromName","fromAddress","smtpEnabled","smtpHost","smtpPort","smtpSecurity","smtpUser","smtpHasPassword","smtpCheckedAt","smtpError","imapEnabled","imapHost","imapPort","imapSecurity","imapUser","imapHasPassword","imapMailbox","imapProjectId","imapCheckedAt","imapError"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","platformAddress","inboundEnabled","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromName":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"fromAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"smtpEnabled":{"type":"boolean"},"smtpHost":{"anyOf":[{"type":"string","minLength":3,"maxLength":253,"pattern":"^[a-zA-Z0-9.-]+$"},{"type":"null"}]},"smtpPort":{"default":587,"type":"integer","minimum":1,"maximum":65535},"smtpSecurity":{"default":"STARTTLS","type":"string","enum":["TLS","STARTTLS"]},"smtpUser":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"smtpPassword":{"type":"string","maxLength":500},"imapEnabled":{"type":"boolean"},"imapHost":{"anyOf":[{"type":"string","minLength":3,"maxLength":253,"pattern":"^[a-zA-Z0-9.-]+$"},{"type":"null"}]},"imapPort":{"default":993,"type":"integer","minimum":1,"maximum":65535},"imapSecurity":{"default":"TLS","type":"string","enum":["TLS","STARTTLS"]},"imapUser":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"imapPassword":{"type":"string","maxLength":500},"imapMailbox":{"default":"INBOX","type":"string","minLength":1,"maxLength":200},"imapProjectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["fromAddress","smtpEnabled","imapEnabled"]}}}}},"delete":{"summary":"Revenir aux emails envoyés par 2T Bug (réglages et mots de passe effacés)","tags":["Conversations"],"operationId":"delete_workspaces_id_mail","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"platformAddress":{"type":"string"},"inboundEnabled":{"type":"boolean"},"settings":{"anyOf":[{"type":"object","properties":{"fromName":{"type":["string","null"]},"fromAddress":{"type":"string"},"smtpEnabled":{"type":"boolean"},"smtpHost":{"type":["string","null"]},"smtpPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"smtpSecurity":{"type":"string","enum":["TLS","STARTTLS"]},"smtpUser":{"type":["string","null"]},"smtpHasPassword":{"type":"boolean"},"smtpCheckedAt":{"type":["string","null"]},"smtpError":{"type":["string","null"]},"imapEnabled":{"type":"boolean"},"imapHost":{"type":["string","null"]},"imapPort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"imapSecurity":{"type":"string","enum":["TLS","STARTTLS"]},"imapUser":{"type":["string","null"]},"imapHasPassword":{"type":"boolean"},"imapMailbox":{"type":"string"},"imapProjectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"imapCheckedAt":{"type":["string","null"]},"imapError":{"type":["string","null"]}},"required":["fromName","fromAddress","smtpEnabled","smtpHost","smtpPort","smtpSecurity","smtpUser","smtpHasPassword","smtpCheckedAt","smtpError","imapEnabled","imapHost","imapPort","imapSecurity","imapUser","imapHasPassword","imapMailbox","imapProjectId","imapCheckedAt","imapError"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","platformAddress","inboundEnabled","settings"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/mail/test":{"post":{"summary":"Essayer le serveur SMTP (un email d’essai part vers vous) ou IMAP, sans enregistrer","tags":["Conversations"],"operationId":"post_workspaces_id_mail_test","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"error":{"type":["string","null"]},"sentTo":{"type":["string","null"]}},"required":["ok","error","sentTo"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromName":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"fromAddress":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"smtpEnabled":{"type":"boolean"},"smtpHost":{"anyOf":[{"type":"string","minLength":3,"maxLength":253,"pattern":"^[a-zA-Z0-9.-]+$"},{"type":"null"}]},"smtpPort":{"default":587,"type":"integer","minimum":1,"maximum":65535},"smtpSecurity":{"default":"STARTTLS","type":"string","enum":["TLS","STARTTLS"]},"smtpUser":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"smtpPassword":{"type":"string","maxLength":500},"imapEnabled":{"type":"boolean"},"imapHost":{"anyOf":[{"type":"string","minLength":3,"maxLength":253,"pattern":"^[a-zA-Z0-9.-]+$"},{"type":"null"}]},"imapPort":{"default":993,"type":"integer","minimum":1,"maximum":65535},"imapSecurity":{"default":"TLS","type":"string","enum":["TLS","STARTTLS"]},"imapUser":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"imapPassword":{"type":"string","maxLength":500},"imapMailbox":{"default":"INBOX","type":"string","minLength":1,"maxLength":200},"imapProjectId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"target":{"type":"string","enum":["smtp","imap"]}},"required":["fromAddress","smtpEnabled","imapEnabled","target"]}}}}}},"/auth/sso/discover":{"post":{"summary":"Adresse de connexion chez le fournisseur d’identité de l’organisation de cette adresse email","tags":["SSO"],"operationId":"post_auth_sso_discover","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"next":{"type":"string","maxLength":500}},"required":["email"]}}}}}},"/auth/sso/{connectionId}/metadata":{"get":{"summary":"Métadonnées SAML du fournisseur de service (2T Bug) pour cette organisation","tags":["SSO"],"operationId":"get_auth_sso_connectionId_metadata","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth/sso/{connectionId}/acs":{"post":{"summary":"Retour du fournisseur d’identité (réponse SAML en POST) : redirige vers le front","tags":["SSO"],"operationId":"post_auth_sso_connectionId_acs","parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"description":"SAMLResponse, RelayState","content":{"application/x-www-form-urlencoded":{"schema":{"type":"object"}}}}}},"/auth/sso/complete":{"post":{"summary":"Ouvrir la session après le retour du fournisseur d’identité (jeton d’une minute)","tags":["SSO"],"operationId":"post_auth_sso_complete","security":[],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"ok"},"me":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"timezone":{"type":"string"},"locale":{"type":"string"},"platformRole":{"type":"string","enum":["USER","ADMIN"]},"hasPassword":{"type":"boolean"},"mfa":{"type":"object","properties":{"totp":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totp","passkeys","recoveryCodesLeft"],"additionalProperties":false},"providers":{"type":"object","properties":{"google":{"type":"boolean"},"github":{"type":"boolean"}},"required":["google","github"],"additionalProperties":false},"mfaSetupRequired":{"type":"boolean"},"createdAt":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"logoUrl":{"type":["string","null"]},"requireMfa":{"type":"boolean"}},"required":["id","name","slug","kind","role","plan","logoUrl","requireMfa"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","timezone","locale","platformRole","hasPassword","mfa","providers","mfaSetupRequired","createdAt","workspaces"],"additionalProperties":false},"next":{"type":["string","null"]}},"required":["status","me","next"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":16,"maxLength":200}},"required":["token"]}}}}}},"/workspaces/{id}/sso":{"get":{"summary":"Connexion unique de l’organisation (administrateurs)","tags":["SSO"],"operationId":"get_workspaces_id_sso","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Commencer la configuration : donne l’Entity ID et l’adresse de retour à recopier chez le fournisseur","tags":["SSO"],"operationId":"post_workspaces_id_sso","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Activer la connexion unique, la rendre obligatoire","description":"Activer demande un fournisseur enregistré, un domaine vérifié et un essai réussi. Obligatoire : plus de mot de passe, Google, GitHub ni passkey pour les adresses des domaines, sauf pour le propriétaire.","tags":["SSO"],"operationId":"patch_workspaces_id_sso","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"enforced":{"type":"boolean"}}}}}}},"delete":{"summary":"Supprimer la connexion unique (domaines et fournisseur effacés)","tags":["SSO"],"operationId":"delete_workspaces_id_sso","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/sso/idp":{"put":{"summary":"Enregistrer le fournisseur d’identité : métadonnées collées, leur adresse, ou saisie à la main","tags":["SSO"],"operationId":"put_workspaces_id_sso_idp","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"metadataXml":{"type":"string","maxLength":524288},"metadataUrl":{"type":"string","maxLength":1000,"format":"uri"},"entityId":{"type":"string","minLength":1,"maxLength":1000},"ssoUrl":{"type":"string","maxLength":2000,"format":"uri"},"certificate":{"type":"string","maxLength":20000}}}}}}}},"/workspaces/{id}/sso/domains":{"post":{"summary":"Ajouter un domaine email (à prouver par un enregistrement DNS TXT)","tags":["SSO"],"operationId":"post_workspaces_id_sso_domains","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":253}},"required":["domain"]}}}}}},"/workspaces/{id}/sso/domains/{domainId}/verify":{"post":{"summary":"Vérifier l’enregistrement DNS TXT d’un domaine","tags":["SSO"],"operationId":"post_workspaces_id_sso_domains_domainId_verify","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"domainId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/sso/domains/{domainId}":{"delete":{"summary":"Retirer un domaine (ses adresses ne passent plus par la connexion unique)","tags":["SSO"],"operationId":"delete_workspaces_id_sso_domains_domainId","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"domainId","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"},"requiredPlan":{"anyOf":[{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},{"type":"null"}]},"connection":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sp":{"type":"object","properties":{"entityId":{"type":"string"},"acsUrl":{"type":"string"},"metadataUrl":{"type":"string"}},"required":["entityId","acsUrl","metadataUrl"],"additionalProperties":false},"idp":{"type":"object","properties":{"entityId":{"type":["string","null"]},"ssoUrl":{"type":["string","null"]},"metadataUrl":{"type":["string","null"]},"certificates":{"type":"array","items":{"type":"object","properties":{"subject":{"type":"string"},"expiresAt":{"type":["string","null"]},"fingerprint":{"type":"string"}},"required":["subject","expiresAt","fingerprint"],"additionalProperties":false}}},"required":["entityId","ssoUrl","metadataUrl","certificates"],"additionalProperties":false},"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"domain":{"type":"string"},"verified":{"type":"boolean"},"record":{"type":"object","properties":{"host":{"type":"string"},"value":{"type":"string"}},"required":["host","value"],"additionalProperties":false}},"required":["id","domain","verified","record"],"additionalProperties":false}},"enabled":{"type":"boolean"},"enforced":{"type":"boolean"},"testedAt":{"type":["string","null"]},"lastLoginAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"missing":{"type":"array","items":{"type":"string","enum":["idp","domain","test"]}}},"required":["id","sp","idp","domains","enabled","enforced","testedAt","lastLoginAt","lastError","missing"],"additionalProperties":false},{"type":"null"}]}},"required":["available","requiredPlan","connection"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/sso/test":{"post":{"summary":"Essayer la connexion chez le fournisseur sans ouvrir de session : renvoie l’adresse où aller","tags":["SSO"],"operationId":"post_workspaces_id_sso_test","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/views":{"get":{"summary":"Mes vues et les vues partagées du projet","tags":["Vues"],"operationId":"get_projects_id_views","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["BOARD","LIST","CALENDAR","TIMELINE"]},"config":{"default":{"filters":{}},"type":"object","properties":{"filters":{"default":{},"type":"object","properties":{"assigneeIds":{"maxItems":30,"type":"array","items":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"me"}]}},"labelIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"types":{"type":"array","items":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"urgencyMin":{"type":"integer","minimum":1,"maximum":5},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"active"},{"type":"string","const":"none"}]},"query":{"type":"string","maxLength":200},"showDone":{"type":"boolean"}},"additionalProperties":false},"sort":{"type":"object","properties":{"field":{"type":"string","enum":["rank","urgency","dueDate","updatedAt","createdAt","estimate"]},"order":{"type":"string","enum":["asc","desc"]}},"required":["field","order"],"additionalProperties":false},"groupBy":{"type":"string","enum":["column","assignee","label","sprint","urgency","none"]},"columns":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":30}},"dateField":{"type":"string","enum":["dueDate","startDate"]}},"required":["filters"],"additionalProperties":false},"shared":{"default":false,"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ownerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mine":{"type":"boolean"},"updatedAt":{"type":"string"}},"required":["name","kind","config","shared","id","projectId","ownerId","mine","updatedAt"],"additionalProperties":false}}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Enregistrer une vue","tags":["Vues"],"operationId":"post_projects_id_views","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"201":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["BOARD","LIST","CALENDAR","TIMELINE"]},"config":{"default":{"filters":{}},"type":"object","properties":{"filters":{"default":{},"type":"object","properties":{"assigneeIds":{"maxItems":30,"type":"array","items":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"me"}]}},"labelIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"types":{"type":"array","items":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"urgencyMin":{"type":"integer","minimum":1,"maximum":5},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"active"},{"type":"string","const":"none"}]},"query":{"type":"string","maxLength":200},"showDone":{"type":"boolean"}},"additionalProperties":false},"sort":{"type":"object","properties":{"field":{"type":"string","enum":["rank","urgency","dueDate","updatedAt","createdAt","estimate"]},"order":{"type":"string","enum":["asc","desc"]}},"required":["field","order"],"additionalProperties":false},"groupBy":{"type":"string","enum":["column","assignee","label","sprint","urgency","none"]},"columns":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":30}},"dateField":{"type":"string","enum":["dueDate","startDate"]}},"required":["filters"],"additionalProperties":false},"shared":{"default":false,"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ownerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mine":{"type":"boolean"},"updatedAt":{"type":"string"}},"required":["name","kind","config","shared","id","projectId","ownerId","mine","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["BOARD","LIST","CALENDAR","TIMELINE"]},"config":{"default":{"filters":{}},"type":"object","properties":{"filters":{"default":{},"type":"object","properties":{"assigneeIds":{"maxItems":30,"type":"array","items":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"me"}]}},"labelIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"types":{"type":"array","items":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"urgencyMin":{"type":"integer","minimum":1,"maximum":5},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"active"},{"type":"string","const":"none"}]},"query":{"type":"string","maxLength":200},"showDone":{"type":"boolean"}}},"sort":{"type":"object","properties":{"field":{"type":"string","enum":["rank","urgency","dueDate","updatedAt","createdAt","estimate"]},"order":{"type":"string","enum":["asc","desc"]}},"required":["field","order"]},"groupBy":{"type":"string","enum":["column","assignee","label","sprint","urgency","none"]},"columns":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":30}},"dateField":{"type":"string","enum":["dueDate","startDate"]}}},"shared":{"default":false,"type":"boolean"}},"required":["name","kind"]}}}}}},"/views/{id}":{"patch":{"summary":"Modifier une vue (son auteur)","tags":["Vues"],"operationId":"patch_views_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["BOARD","LIST","CALENDAR","TIMELINE"]},"config":{"default":{"filters":{}},"type":"object","properties":{"filters":{"default":{},"type":"object","properties":{"assigneeIds":{"maxItems":30,"type":"array","items":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"me"}]}},"labelIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"types":{"type":"array","items":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"urgencyMin":{"type":"integer","minimum":1,"maximum":5},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"active"},{"type":"string","const":"none"}]},"query":{"type":"string","maxLength":200},"showDone":{"type":"boolean"}},"additionalProperties":false},"sort":{"type":"object","properties":{"field":{"type":"string","enum":["rank","urgency","dueDate","updatedAt","createdAt","estimate"]},"order":{"type":"string","enum":["asc","desc"]}},"required":["field","order"],"additionalProperties":false},"groupBy":{"type":"string","enum":["column","assignee","label","sprint","urgency","none"]},"columns":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":30}},"dateField":{"type":"string","enum":["dueDate","startDate"]}},"required":["filters"],"additionalProperties":false},"shared":{"default":false,"type":"boolean"},"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ownerId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mine":{"type":"boolean"},"updatedAt":{"type":"string"}},"required":["name","kind","config","shared","id","projectId","ownerId","mine","updatedAt"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["BOARD","LIST","CALENDAR","TIMELINE"]},"config":{"default":{"filters":{}},"type":"object","properties":{"filters":{"default":{},"type":"object","properties":{"assigneeIds":{"maxItems":30,"type":"array","items":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"me"}]}},"labelIds":{"maxItems":20,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"types":{"type":"array","items":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]}},"urgencyMin":{"type":"integer","minimum":1,"maximum":5},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"string","const":"active"},{"type":"string","const":"none"}]},"query":{"type":"string","maxLength":200},"showDone":{"type":"boolean"}}},"sort":{"type":"object","properties":{"field":{"type":"string","enum":["rank","urgency","dueDate","updatedAt","createdAt","estimate"]},"order":{"type":"string","enum":["asc","desc"]}},"required":["field","order"]},"groupBy":{"type":"string","enum":["column","assignee","label","sprint","urgency","none"]},"columns":{"maxItems":20,"type":"array","items":{"type":"string","maxLength":30}},"dateField":{"type":"string","enum":["dueDate","startDate"]}}},"shared":{"default":false,"type":"boolean"}}}}}}},"delete":{"summary":"Supprimer une vue (son auteur ou un administrateur du projet)","tags":["Vues"],"operationId":"delete_views_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/trash":{"get":{"summary":"Corbeille : projets (administrateurs) et cartes supprimés, restaurables 30 jours","description":"projectId : uniquement les cartes de ce projet (corbeille ouverte depuis le tableau).","tags":["Corbeille"],"operationId":"get_trash","parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"retentionDays":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"iconUrl":{"type":["string","null"]},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]},"workspace":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]}},"required":["id","name","kind"],"additionalProperties":false},"ticketCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deletedAt":{"type":"string"},"deletedBy":{"type":["string","null"]},"deletedById":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"purgeAt":{"type":"string"}},"required":["id","key","name","color","coverSeed","iconUrl","background","workspace","ticketCount","deletedAt","deletedBy","deletedById","purgeAt"],"additionalProperties":false}},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"number":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"type":{"type":"string","enum":["TASK","BUG","STORY","EPIC","SUBTASK"]},"title":{"type":"string"},"columnId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"rank":{"type":"string"},"urgency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimate":{"type":["number","null"]},"startDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"startedAt":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"sprintId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"reviewerId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"assigneeIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"labelIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"checklist":{"type":"object","properties":{"done":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["done","total"],"additionalProperties":false},"counts":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"attachments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"children":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"blockedBy":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","attachments","children","blockedBy"],"additionalProperties":false},"source":{"type":"string","enum":["APP","PUBLIC_FORM","WIDGET","EMAIL","MCP","IMPORT","AUTOMATION","RECURRENCE","API"]},"suspectedDuplicate":{"type":"boolean"},"clientWaitingSince":{"type":["string","null"]},"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"project":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"key":{"type":"string"},"name":{"type":"string"},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"iconUrl":{"type":["string","null"]},"coverSeed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"background":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"photo"},"photoId":{"type":"string"},"url":{"type":"string"},"thumbUrl":{"type":"string"},"color":{"type":"string"},"author":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},{"type":"null"}]},"pageUrl":{"type":"string"}},"required":["kind","photoId","url","thumbUrl","color","author","pageUrl"],"additionalProperties":false},{"type":"null"}]}},"required":["id","key","name","color","iconUrl","coverSeed","background"],"additionalProperties":false},"columnName":{"type":["string","null"]},"deletedAt":{"type":"string"},"deletedBy":{"type":["string","null"]},"deletedById":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"purgeAt":{"type":"string"},"canPurge":{"type":"boolean"}},"required":["id","key","number","projectId","type","title","columnId","rank","urgency","estimate","startDate","dueDate","startedAt","completedAt","sprintId","parentId","reviewerId","assigneeIds","labelIds","checklist","counts","source","suspectedDuplicate","clientWaitingSince","version","createdAt","updatedAt","project","columnName","deletedAt","deletedBy","deletedById","purgeAt","canPurge"],"additionalProperties":false}}},"required":["retentionDays","projects","tickets"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/projects/{id}/permanent":{"delete":{"summary":"Supprimer définitivement un projet de la corbeille (administrateurs)","description":"Le projet doit déjà être à la corbeille. Cartes, commentaires et fichiers disparaissent.","tags":["Corbeille"],"operationId":"delete_projects_id_permanent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tickets/{id}/permanent":{"delete":{"summary":"Supprimer définitivement une carte de la corbeille (administrateurs du projet)","tags":["Corbeille"],"operationId":"delete_tickets_id_permanent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"204":{"description":"Succès"},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/workspaces/{id}/audit":{"get":{"summary":"Journal d’audit de l’organisation : qui a fait quoi et quand (filtrable, exportable en CSV)","tags":["Journal d’audit"],"operationId":"get_workspaces_id_audit","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"action","in":"query","required":false,"schema":{"type":"string","maxLength":60}},{"name":"actorId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"from","in":"query","required":false,"schema":{}},{"name":"to","in":"query","required":false,"schema":{}},{"name":"format","in":"query","required":false,"schema":{"default":"json","type":"string","enum":["json","csv"]}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string"},"actor":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","username","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"targetType":{"type":["string","null"]},"targetId":{"type":["string","null"]},"data":{},"ip":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","action","actor","targetType","targetId","data","ip","createdAt"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/metrics":{"get":{"summary":"Indicateurs de la feuille de route : activation à 48 h, conversion à 6 mois, résiliation mensuelle","tags":["Administration"],"operationId":"get_admin_metrics","parameters":[{"name":"days","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":7,"maximum":365}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"period":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"signups":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activation":{"type":"object","properties":{"rate":{"type":"number"},"activated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"definition":{"type":"string"}},"required":["rate","activated","definition"],"additionalProperties":false},"conversion":{"type":"object","properties":{"rate":{"type":"number"},"converted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cohort":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["rate","converted","cohort"],"additionalProperties":false},"churn":{"type":"object","properties":{"rate":{"type":"number"},"canceled":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activeAtStart":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["rate","canceled","activeAtStart"],"additionalProperties":false},"importsMedianSeconds":{"type":["number","null"]}},"required":["period","signups","activation","conversion","churn","importsMedianSeconds"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/workspaces/{id}/grant":{"post":{"summary":"Attribuer une offre hors paiement (enseignants, partenaires, geste commercial)","tags":["Administration"],"operationId":"post_admin_workspaces_id_grant","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string","enum":["PLUS","TEAM","BUSINESS"]},"months":{"type":"integer","minimum":1,"maximum":36},"source":{"type":"string","enum":["TEACHER","MANUAL"]},"reason":{"type":"string","maxLength":300}},"required":["plan","months","source","reason"]}}}}}},"/admin/overview":{"get":{"summary":"Console : revenu, clients, personnes et activité de toute la plateforme sur une période","tags":["Administration"],"operationId":"get_admin_overview","parameters":[{"name":"days","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":7,"maximum":365}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"period":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["from","to","days"],"additionalProperties":false},"stripe":{"type":"object","properties":{"enabled":{"type":"boolean"},"mode":{"anyOf":[{"type":"string","enum":["live","test"]},{"type":"null"}]}},"required":["enabled","mode"],"additionalProperties":false},"viewer":{"type":"object","properties":{"mfa":{"type":"boolean"}},"required":["mfa"],"additionalProperties":false},"revenue":{"type":"object","properties":{"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"arrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"source":{"type":"string","enum":["stripe","catalog"]},"arpaCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"collectedCents":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"previousCollectedCents":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"openCents":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"openCount":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"failedCount":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"monthly":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"paidCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"invoices":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["month","paidCents","invoices"],"additionalProperties":false}},"invoices":{"type":"string","enum":["ok","disabled","permission","unavailable"]},"mismatches":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"reason":{"type":"string","enum":["no_workspace","not_in_base"]},"status":{"type":"string"},"monthlyCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"workspaceId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"stripeUrl":{"type":"string"}},"required":["id","reason","status","monthlyCents","workspaceId","stripeUrl"],"additionalProperties":false}}},"required":["mrrCents","arrCents","source","arpaCents","collectedCents","previousCollectedCents","openCents","openCount","failedCount","monthly","invoices","mismatches"],"additionalProperties":false},"customers":{"type":"object","properties":{"paying":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trialing":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pastDue":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"granted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"started":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"canceled":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["paying","trialing","pastDue","granted","started","canceled"],"additionalProperties":false},"users":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"signups":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousSignups":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"active1":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"active7":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"active30":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["total","signups","previousSignups","active1","active7","active30"],"additionalProperties":false},"workspaces":{"type":"object","properties":{"organizations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"personal":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"newOrganizations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["organizations","personal","newOrganizations"],"additionalProperties":false},"usage":{"type":"object","properties":{"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ticketsInPeriod":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousTickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["projects","tickets","ticketsInPeriod","previousTickets"],"additionalProperties":false},"plans":{"type":"array","items":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"workspaces":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["plan","workspaces","seats"],"additionalProperties":false}},"funnel":{"type":"object","properties":{"signups":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"project":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cards":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"invited":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscribed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["signups","project","cards","invited","subscribed","activated"],"additionalProperties":false},"daily":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"signups":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activeUsers":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"aiCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"automationRuns":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscriptionsStarted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscriptionsCanceled":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trialsStarted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["date","signups","activeUsers","tickets","projects","comments","aiCredits","automationRuns","subscriptionsStarted","subscriptionsCanceled","trialsStarted"],"additionalProperties":false}},"recentUsers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"lastActiveAt":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"deletedAt":{"type":["string","null"]},"auth":{"type":"object","properties":{"password":{"type":"boolean"},"google":{"type":"boolean"},"github":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totp":{"type":"boolean"}},"required":["password","google","github","passkeys","totp"],"additionalProperties":false},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"paying":{"type":"boolean"},"organizations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","email","username","firstName","lastName","avatarUrl","createdAt","lastActiveAt","emailVerified","deletedAt","auth","plan","paying","organizations","projects","tickets"],"additionalProperties":false}},"busiest":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"ownerName":{"type":"string"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"actions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"people":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"members":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","name","kind","logoUrl","ownerName","plan","actions","people","members"],"additionalProperties":false}}},"required":["generatedAt","period","stripe","viewer","revenue","customers","users","workspaces","usage","plans","funnel","daily","recentUsers","busiest"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/activity":{"get":{"summary":"Console : fil des événements de la plateforme (inscriptions, organisations, abonnements, paiements…)","tags":["Administration"],"operationId":"get_admin_activity","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":30,"type":"integer","minimum":1,"maximum":100}},{"name":"before","in":"query","required":false,"schema":{}},{"name":"kind","in":"query","required":false,"schema":{"default":"business","type":"string","enum":["business","all"]}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"createdAt":{"type":"string"},"data":{},"user":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","email","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"ownerName":{"type":"string"}},"required":["id","name","kind","logoUrl","ownerName"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","createdAt","data","user","workspace"],"additionalProperties":false}},"hasMore":{"type":"boolean"}},"required":["items","hasMore"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users":{"get":{"summary":"Console : toutes les personnes inscrites (recherche, filtres, tri, pages)","tags":["Administration"],"operationId":"get_admin_users","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"filter","in":"query","required":false,"schema":{"default":"all","type":"string","enum":["all","active","dormant","paying","mfa","deleted"]}},{"name":"sort","in":"query","required":false,"schema":{"default":"recent","type":"string","enum":["recent","active","name","email"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":10000}},{"name":"pageSize","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":5,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"lastActiveAt":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"deletedAt":{"type":["string","null"]},"auth":{"type":"object","properties":{"password":{"type":"boolean"},"google":{"type":"boolean"},"github":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totp":{"type":"boolean"}},"required":["password","google","github","passkeys","totp"],"additionalProperties":false},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"paying":{"type":"boolean"},"organizations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","email","username","firstName","lastName","avatarUrl","createdAt","lastActiveAt","emailVerified","deletedAt","auth","plan","paying","organizations","projects","tickets"],"additionalProperties":false}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"counts":{"type":"object","propertyNames":{"type":"string","enum":["all","active","dormant","paying","mfa","deleted"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"required":["all","active","dormant","paying","mfa","deleted"]}},"required":["items","total","page","pageSize","counts"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}":{"get":{"summary":"Console : fiche d’une personne (espaces, offres, sécurité, activité récente)","tags":["Administration"],"operationId":"get_admin_users_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"lastActiveAt":{"type":["string","null"]},"emailVerified":{"type":"boolean"},"deletedAt":{"type":["string","null"]},"auth":{"type":"object","properties":{"password":{"type":"boolean"},"google":{"type":"boolean"},"github":{"type":"boolean"},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totp":{"type":"boolean"}},"required":["password","google","github","passkeys","totp"],"additionalProperties":false},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"paying":{"type":"boolean"},"organizations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"locale":{"type":"string"},"timezone":{"type":"string"},"security":{"type":"object","properties":{"sessions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"devices":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"apiTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"recoveryCodesLeft":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"passwordUpdatedAt":{"type":["string","null"]}},"required":["sessions","devices","apiTokens","recoveryCodesLeft","passwordUpdatedAt"],"additionalProperties":false},"recentSessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ip":{"type":["string","null"]},"userAgent":{"type":["string","null"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":"string"}},"required":["id","ip","userAgent","createdAt","lastUsedAt"],"additionalProperties":false}},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"ownerName":{"type":"string"},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"joinedAt":{"type":"string"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"members":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscription":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"status":{"type":"string","enum":["TRIALING","ACTIVE","PAST_DUE","CANCELED","INCOMPLETE"]},"source":{"type":"string","enum":["STRIPE","TRIAL","ACADEMIC","TEACHER","MANUAL"]},"interval":{"anyOf":[{"type":"string","enum":["MONTH","YEAR"]},{"type":"null"}]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currentPeriodEnd":{"type":["string","null"]},"cancelAtPeriodEnd":{"type":"boolean"},"trialEndsAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stripeUrl":{"type":["string","null"]}},"required":["id","plan","status","source","interval","seats","currentPeriodEnd","cancelAtPeriodEnd","trialEndsAt","createdAt","updatedAt","mrrCents","stripeUrl"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","kind","logoUrl","ownerName","role","joinedAt","plan","members","projects","subscription"],"additionalProperties":false}},"usage":{"type":"object","properties":{"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"aiCredits30d":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"timeMinutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["comments","aiCredits30d","timeMinutes"],"additionalProperties":false},"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"createdAt":{"type":"string"},"data":{},"user":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","email","firstName","lastName","avatarUrl"],"additionalProperties":false},{"type":"null"}]},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"ownerName":{"type":"string"}},"required":["id","name","kind","logoUrl","ownerName"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","createdAt","data","user","workspace"],"additionalProperties":false}},"audit":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"action":{"type":"string"},"createdAt":{"type":"string"},"ip":{"type":["string","null"]},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"ownerName":{"type":"string"}},"required":["id","name","kind","logoUrl","ownerName"],"additionalProperties":false},{"type":"null"}]}},"required":["id","action","createdAt","ip","workspace"],"additionalProperties":false}}},"required":["id","email","username","firstName","lastName","avatarUrl","createdAt","lastActiveAt","emailVerified","deletedAt","auth","plan","paying","organizations","projects","tickets","locale","timezone","security","recentSessions","workspaces","usage","events","audit"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/users/{id}/sessions/revoke":{"post":{"summary":"Console : fermer toutes les sessions d’une personne (compte compromis, départ)","tags":["Administration"],"operationId":"post_admin_users_id_sessions_revoke","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["revoked"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/workspaces":{"get":{"summary":"Console : organisations et comptes personnels (offre, membres, projets)","tags":["Administration"],"operationId":"get_admin_workspaces","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"filter","in":"query","required":false,"schema":{"default":"TEAM","type":"string","enum":["all","TEAM","PERSONAL","paying","deleted"]}},{"name":"sort","in":"query","required":false,"schema":{"default":"recent","type":"string","enum":["recent","name","members","projects"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":10000}},{"name":"pageSize","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":5,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"deletedAt":{"type":["string","null"]},"owner":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","email","firstName","lastName","avatarUrl"],"additionalProperties":false},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"subscription":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"status":{"type":"string","enum":["TRIALING","ACTIVE","PAST_DUE","CANCELED","INCOMPLETE"]},"source":{"type":"string","enum":["STRIPE","TRIAL","ACADEMIC","TEACHER","MANUAL"]},"interval":{"anyOf":[{"type":"string","enum":["MONTH","YEAR"]},{"type":"null"}]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currentPeriodEnd":{"type":["string","null"]},"cancelAtPeriodEnd":{"type":"boolean"},"trialEndsAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stripeUrl":{"type":["string","null"]}},"required":["id","plan","status","source","interval","seats","currentPeriodEnd","cancelAtPeriodEnd","trialEndsAt","createdAt","updatedAt","mrrCents","stripeUrl"],"additionalProperties":false},{"type":"null"}]},"members":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stripeCustomer":{"type":"boolean"}},"required":["id","name","slug","kind","logoUrl","createdAt","deletedAt","owner","plan","subscription","members","projects","stripeCustomer"],"additionalProperties":false}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"counts":{"type":"object","propertyNames":{"type":"string","enum":["all","TEAM","PERSONAL","paying","deleted"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"required":["all","TEAM","PERSONAL","paying","deleted"]}},"required":["items","total","page","pageSize","counts"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/workspaces/{id}":{"get":{"summary":"Console : fiche d’une organisation (membres, abonnements, factures, usage du mois)","tags":["Administration"],"operationId":"get_admin_workspaces_id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"deletedAt":{"type":["string","null"]},"owner":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","email","firstName","lastName","avatarUrl"],"additionalProperties":false},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"subscription":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"status":{"type":"string","enum":["TRIALING","ACTIVE","PAST_DUE","CANCELED","INCOMPLETE"]},"source":{"type":"string","enum":["STRIPE","TRIAL","ACADEMIC","TEACHER","MANUAL"]},"interval":{"anyOf":[{"type":"string","enum":["MONTH","YEAR"]},{"type":"null"}]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currentPeriodEnd":{"type":["string","null"]},"cancelAtPeriodEnd":{"type":"boolean"},"trialEndsAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stripeUrl":{"type":["string","null"]}},"required":["id","plan","status","source","interval","seats","currentPeriodEnd","cancelAtPeriodEnd","trialEndsAt","createdAt","updatedAt","mrrCents","stripeUrl"],"additionalProperties":false},{"type":"null"}]},"members":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stripeCustomer":{"type":"boolean"},"ownerName":{"type":"string"},"stripeCustomerUrl":{"type":["string","null"]},"subscriptions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"status":{"type":"string","enum":["TRIALING","ACTIVE","PAST_DUE","CANCELED","INCOMPLETE"]},"source":{"type":"string","enum":["STRIPE","TRIAL","ACADEMIC","TEACHER","MANUAL"]},"interval":{"anyOf":[{"type":"string","enum":["MONTH","YEAR"]},{"type":"null"}]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currentPeriodEnd":{"type":["string","null"]},"cancelAtPeriodEnd":{"type":"boolean"},"trialEndsAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stripeUrl":{"type":["string","null"]}},"required":["id","plan","status","source","interval","seats","currentPeriodEnd","cancelAtPeriodEnd","trialEndsAt","createdAt","updatedAt","mrrCents","stripeUrl"],"additionalProperties":false}},"people":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]},"role":{"type":"string","enum":["OWNER","ADMIN","MEMBER"]},"joinedAt":{"type":"string"},"lastActiveAt":{"type":["string","null"]}},"required":["id","email","firstName","lastName","avatarUrl","role","joinedAt","lastActiveAt"],"additionalProperties":false}},"topProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"key":{"type":"string"},"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"archived":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","name","key","tickets","archived","createdAt"],"additionalProperties":false}},"usage":{"type":"object","properties":{"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"aiCreditsMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"automationRunsMonth":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pendingInvitations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["tickets","aiCreditsMonth","automationRunsMonth","pendingInvitations"],"additionalProperties":false},"invoices":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","open","paid","uncollectible","void"]},"currency":{"type":"string"},"totalCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountPaidCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountDueCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountRemainingCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"paidAt":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"periodStart":{"type":["string","null"]},"periodEnd":{"type":["string","null"]},"billingReason":{"type":["string","null"]},"attemptCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"nextPaymentAttempt":{"type":["string","null"]},"customer":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"email":{"type":["string","null"]}},"required":["id","name","email"],"additionalProperties":false},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]}},"required":["id","name","kind","logoUrl"],"additionalProperties":false},{"type":"null"}]},"description":{"type":["string","null"]},"hostedInvoiceUrl":{"type":["string","null"]},"pdfUrl":{"type":["string","null"]},"stripeUrl":{"type":["string","null"]}},"required":["id","number","status","currency","totalCents","amountPaidCents","amountDueCents","amountRemainingCents","createdAt","paidAt","dueDate","periodStart","periodEnd","billingReason","attemptCount","nextPaymentAttempt","customer","workspace","description","hostedInvoiceUrl","pdfUrl","stripeUrl"],"additionalProperties":false}},{"type":"null"}]},"invoicesAccess":{"type":"string","enum":["ok","disabled","permission","unavailable"]}},"required":["id","name","slug","kind","logoUrl","createdAt","deletedAt","owner","plan","subscription","members","projects","stripeCustomer","ownerName","stripeCustomerUrl","subscriptions","people","topProjects","usage","invoices","invoicesAccess"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/subscriptions":{"get":{"summary":"Console : abonnements de toute la plateforme (statut, offre, origine, revenu mensuel)","tags":["Administration"],"operationId":"get_admin_subscriptions","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"filter","in":"query","required":false,"schema":{"default":"current","type":"string","enum":["current","ACTIVE","TRIALING","PAST_DUE","CANCELED","all"]}},{"name":"plan","in":"query","required":false,"schema":{"type":"string","enum":["PLUS","TEAM","BUSINESS"]}},{"name":"source","in":"query","required":false,"schema":{"type":"string","enum":["STRIPE","TRIAL","GRANTED"]}},{"name":"sort","in":"query","required":false,"schema":{"default":"recent","type":"string","enum":["recent","renewal","seats","updated"]}},{"name":"page","in":"query","required":false,"schema":{"default":1,"type":"integer","minimum":1,"maximum":10000}},{"name":"pageSize","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":5,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"status":{"type":"string","enum":["TRIALING","ACTIVE","PAST_DUE","CANCELED","INCOMPLETE"]},"source":{"type":"string","enum":["STRIPE","TRIAL","ACADEMIC","TEACHER","MANUAL"]},"interval":{"anyOf":[{"type":"string","enum":["MONTH","YEAR"]},{"type":"null"}]},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currentPeriodEnd":{"type":["string","null"]},"cancelAtPeriodEnd":{"type":"boolean"},"trialEndsAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stripeUrl":{"type":["string","null"]},"workspace":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"ownerName":{"type":"string"},"owner":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"avatarUrl":{"type":["string","null"]}},"required":["id","email","firstName","lastName","avatarUrl"],"additionalProperties":false}},"required":["id","name","kind","logoUrl","ownerName","owner"],"additionalProperties":false}},"required":["id","plan","status","source","interval","seats","currentPeriodEnd","cancelAtPeriodEnd","trialEndsAt","createdAt","updatedAt","mrrCents","stripeUrl","workspace"],"additionalProperties":false}},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"counts":{"type":"object","propertyNames":{"type":"string","enum":["current","ACTIVE","TRIALING","PAST_DUE","CANCELED","all"]},"additionalProperties":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"required":["current","ACTIVE","TRIALING","PAST_DUE","CANCELED","all"]},"summary":{"type":"object","properties":{"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"source":{"type":"string","enum":["stripe","catalog"]},"byPlan":{"type":"array","items":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"subscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["plan","subscriptions","mrrCents"],"additionalProperties":false}},"mismatches":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"reason":{"type":"string","enum":["no_workspace","not_in_base"]},"status":{"type":"string"},"monthlyCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"workspaceId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"stripeUrl":{"type":"string"}},"required":["id","reason","status","monthlyCents","workspaceId","stripeUrl"],"additionalProperties":false}}},"required":["mrrCents","source","byPlan","mismatches"],"additionalProperties":false}},"required":["items","total","page","pageSize","counts","summary"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/subscriptions/{id}/end":{"post":{"summary":"Console : arrêter une offre attribuée hors paiement (enseignant, partenaire, offre étudiante, essai)","tags":["Administration"],"operationId":"post_admin_subscriptions_id_end","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}},"required":["ok"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":300}},"required":["reason"]}}}}}},"/admin/invoices":{"get":{"summary":"Console : factures Stripe en direct (statut, organisation, montants, liens), avec les encaissements de l’année","tags":["Administration"],"operationId":"get_admin_invoices","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["open","paid","uncollectible","void"]}},{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"startingAfter","in":"query","required":false,"schema":{"type":"string","pattern":"^in_[A-Za-z0-9]+$"}},{"name":"endingBefore","in":"query","required":false,"schema":{"type":"string","pattern":"^in_[A-Za-z0-9]+$"}},{"name":"limit","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":5,"maximum":100}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"mode":{"anyOf":[{"type":"string","enum":["live","test"]},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","open","paid","uncollectible","void"]},"currency":{"type":"string"},"totalCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountPaidCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountDueCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"amountRemainingCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"paidAt":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"periodStart":{"type":["string","null"]},"periodEnd":{"type":["string","null"]},"billingReason":{"type":["string","null"]},"attemptCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"nextPaymentAttempt":{"type":["string","null"]},"customer":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"email":{"type":["string","null"]}},"required":["id","name","email"],"additionalProperties":false},"workspace":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]}},"required":["id","name","kind","logoUrl"],"additionalProperties":false},{"type":"null"}]},"description":{"type":["string","null"]},"hostedInvoiceUrl":{"type":["string","null"]},"pdfUrl":{"type":["string","null"]},"stripeUrl":{"type":["string","null"]}},"required":["id","number","status","currency","totalCents","amountPaidCents","amountDueCents","amountRemainingCents","createdAt","paidAt","dueDate","periodStart","periodEnd","billingReason","attemptCount","nextPaymentAttempt","customer","workspace","description","hostedInvoiceUrl","pdfUrl","stripeUrl"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"firstId":{"type":["string","null"]},"lastId":{"type":["string","null"]},"summary":{"anyOf":[{"type":"object","properties":{"paid30Cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"previousPaid30Cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"paidYearCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"openCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"openCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failedCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"uncollectibleCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"paidCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"monthly":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"paidCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"invoices":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["month","paidCents","invoices"],"additionalProperties":false}}},"required":["paid30Cents","previousPaid30Cents","paidYearCents","openCents","openCount","failedCount","uncollectibleCents","paidCount","monthly"],"additionalProperties":false},{"type":"null"}]}},"required":["enabled","mode","items","hasMore","firstId","lastId","summary"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/admin/stats":{"get":{"summary":"Console : statistiques détaillées (croissance, activation, rétention, rythme, revenu, usage)","tags":["Administration"],"operationId":"get_admin_stats","parameters":[{"name":"days","in":"query","required":false,"schema":{"default":90,"type":"integer","minimum":14,"maximum":365}}],"security":[{"session":[]},{"apiToken":[]}],"responses":{"200":{"description":"Succès","content":{"application/json":{"schema":{"type":"object","properties":{"period":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["from","to","days"],"additionalProperties":false},"usersBefore":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"daily":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"signups":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activeUsers":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"tickets":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"projects":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"comments":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"aiCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"automationRuns":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscriptionsStarted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscriptionsCanceled":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trialsStarted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["date","signups","activeUsers","tickets","projects","comments","aiCredits","automationRuns","subscriptionsStarted","subscriptionsCanceled","trialsStarted"],"additionalProperties":false}},"funnel":{"type":"object","properties":{"signups":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"project":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cards":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"invited":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscribed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"activated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["signups","project","cards","invited","subscribed","activated"],"additionalProperties":false},"cohorts":{"type":"array","items":{"type":"object","properties":{"week":{"type":"string"},"size":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"retention":{"type":"array","items":{"type":["number","null"]}}},"required":["week","size","retention"],"additionalProperties":false}},"heatmap":{"type":"array","items":{"type":"object","properties":{"dow":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hour":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["dow","hour","count"],"additionalProperties":false}},"accounts":{"type":"object","properties":{"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"password":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"google":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"github":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mfa":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"passkeys":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"english":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["total","password","google","github","mfa","passkeys","english"],"additionalProperties":false},"plans":{"type":"array","items":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"workspaces":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"seats":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["plan","workspaces","seats"],"additionalProperties":false}},"revenue":{"type":"object","properties":{"enabled":{"type":"boolean"},"source":{"type":"string","enum":["stripe","catalog"]},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"monthly":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"paidCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"invoices":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["month","paidCents","invoices"],"additionalProperties":false}},"mrrHistory":{"type":"array","items":{"type":"object","properties":{"month":{"type":"string"},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["month","mrrCents","subscriptions"],"additionalProperties":false}},"byPlan":{"type":"array","items":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"subscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"mrrCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["plan","subscriptions","mrrCents"],"additionalProperties":false}},"byInterval":{"type":"object","properties":{"month":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"year":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["month","year"],"additionalProperties":false}},"required":["enabled","source","mrrCents","monthly","mrrHistory","byPlan","byInterval"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["STRIPE","TRIAL","ACADEMIC","TEACHER","MANUAL"]},"subscriptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["source","subscriptions"],"additionalProperties":false}},"ai":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string"},"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["feature","credits"],"additionalProperties":false}},"busiest":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"kind":{"type":"string","enum":["PERSONAL","TEAM"]},"logoUrl":{"type":["string","null"]},"ownerName":{"type":"string"},"plan":{"type":"string","enum":["FREE","PLUS","TEAM","BUSINESS"]},"actions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"people":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"members":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","name","kind","logoUrl","ownerName","plan","actions","people","members"],"additionalProperties":false}}},"required":["period","usersBefore","daily","funnel","cohorts","heatmap","accounts","plans","revenue","sources","ai","busiest"],"additionalProperties":false}}}},"default":{"description":"Erreur","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}