@@ -46,6 +46,91 @@ Cria um novo certificado para um determinado produto.
4646 }
4747 ```
4848
49+ ### Criar Certificados em Lote
50+
51+ Cria múltiplos certificados a partir de uma lista de dados recebida diretamente.
52+
53+ - ** Endpoint:** ` POST /v1/certificate/create-batch `
54+ - ** Entrada (body):**
55+ ``` json
56+ {
57+ "certificates" : [
58+ {
59+ "order_id" : 1234 ,
60+ "first_name" : " João" ,
61+ "last_name" : " Silva" ,
62+ 63+ "phone" : " (48) 99999-9999" ,
64+ "cpf" : " 123.456.789-00" ,
65+ "city" : " Florianópolis" ,
66+ "product_id" : 5678 ,
67+ "product_name" : " Workshop de Python Avançado" ,
68+ "certificate_details" : " In recognition of their participation in the Workshop de Python Avançado, held on January 15, 2025, at IFSC – Câmpus Florianópolis, Brazil, with a total duration of 8 hours." ,
69+ "certificate_logo" : " https://example.com/logo.png" ,
70+ "certificate_background" : " https://example.com/background.png" ,
71+ "order_date" : " 2025-01-10 14:30:00" ,
72+ "checkin_latitude" : " -27.5667" ,
73+ "checkin_longitude" : " -48.5156" ,
74+ "time_checkin" : " 2025-01-15 09:00:00"
75+ },
76+ {
77+ "order_id" : 1235 ,
78+ "first_name" : " Maria" ,
79+ "last_name" : " Santos" ,
80+ 81+ "phone" : " (48) 88888-8888" ,
82+ "cpf" : " 987.654.321-00" ,
83+ "city" : " São José" ,
84+ "product_id" : 5678 ,
85+ "product_name" : " Workshop de Python Avançado" ,
86+ "certificate_details" : " In recognition of their participation in the Workshop de Python Avançado, held on January 15, 2025, at IFSC – Câmpus Florianópolis, Brazil, with a total duration of 8 hours." ,
87+ "certificate_logo" : " https://example.com/logo.png" ,
88+ "certificate_background" : " https://example.com/background.png" ,
89+ "order_date" : " 2025-01-10 14:35:00" ,
90+ "checkin_latitude" : " -27.5667" ,
91+ "checkin_longitude" : " -48.5156" ,
92+ "time_checkin" : " 2025-01-15 09:05:00"
93+ }
94+ ]
95+ }
96+ ```
97+ - ** Campos obrigatórios:**
98+ - ` order_id ` : ID único do pedido (integer)
99+ - ` first_name ` : Primeiro nome do participante (string)
100+ - ` last_name ` : Sobrenome do participante (string)
101+ - ` email ` : Email do participante (string)
102+ - ` phone ` : Telefone do participante (string)
103+ - ` cpf ` : CPF do participante (string, pode ser vazio)
104+ - ` city ` : Cidade do participante (string)
105+ - ` product_id ` : ID do produto (integer)
106+ - ` product_name ` : Nome do produto (string)
107+ - ` certificate_details ` : Detalhes do certificado (string)
108+ - ` certificate_logo ` : URL do logo do certificado (string)
109+ - ` certificate_background ` : URL do background do certificado (string)
110+ - ` order_date ` : Data do pedido no formato "YYYY-MM-DD HH:MM: SS " (string)
111+ - ** Campos opcionais:**
112+ - ` checkin_latitude ` : Latitude do check-in (string, opcional)
113+ - ` checkin_longitude ` : Longitude do check-in (string, opcional)
114+ - ` time_checkin ` : Data e hora do check-in no formato "YYYY-MM-DD HH:MM: SS " (string, opcional)
115+ - ** Nota:** Certificados sem ` time_checkin ` serão marcados como inválidos e não serão processados.
116+ - ** Saída (sucesso):**
117+ ``` json
118+ {
119+ "certificate_quantity" : 2 ,
120+ "existing_orders" : [],
121+ "new_orders" : [1234 , 1235 ],
122+ "processing_date" : " 2025-01-20 10:30:45.123456"
123+ }
124+ ```
125+ - ** Saída (erro):**
126+ ``` json
127+ {
128+ "status" : 500 ,
129+ "message" : " Internal Server Error" ,
130+ "details" : " string"
131+ }
132+ ```
133+
49134### Consultar Certificado
50135
51136Consulta certificados com base em diferentes critérios.
0 commit comments